📜  JavaScript |文本格式(1)

📅  最后修改于: 2023-12-03 15:01:39.788000             🧑  作者: Mango

JavaScript | 文本格式

JavaScript 作为一种传统的脚本语言,广泛应用于 Web 前端开发、后端服务器开发以及桌面应用程序等领域。在文本处理方面,JavaScript 也拥有丰富的内置库和第三方工具,支持常见的文本格式,如 JSON、XML、CSV 等。本文将介绍 JavaScript 在文本格式处理方面的相关知识。

JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于 JavaScript 的语法。它采用键值对的形式组织数据,具有易读易写的特点,广泛应用于前后端通信、数据存储等方面。

JavaScript 内置了全局对象 JSON,提供了 parse() 和 stringify() 两个方法,用于将 JSON 格式的字符串和 JavaScript 对象之间进行转换。例如:

// 将 JSON 格式字符串转换为 JavaScript 对象
const jsonStr = '{"name": "Tom", "age": 18}';
const jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // {name: "Tom", age: 18}

// 将 JavaScript 对象转换为 JSON 格式字符串
const jsonObj2 = {name: "Tom", age: 18};
const jsonStr2 = JSON.stringify(jsonObj2);
console.log(jsonStr2); // '{"name":"Tom","age":18}'
XML

XML(Extensible Markup Language)是一种标记语言,用于存储和传输结构化的数据。与 HTML 相似,XML 也使用标签和属性来描述数据的结构和信息。

JavaScript 提供了 DOM(Document Object Model)API 和解析器,用于操作和解析 XML 文档。使用 DOM API,我们可以像操作 HTML 页面一样操作 XML 文档,例如:

// 创建 XML 文档并添加元素及属性
const xmlDoc = document.implementation.createDocument("", "books", null);
const book1 = xmlDoc.createElement("book");
book1.setAttribute("id", "001");
const title1 = xmlDoc.createElement("title");
const author1 = xmlDoc.createElement("author");
const price1 = xmlDoc.createElement("price");
title1.textContent = "JavaScript";
author1.textContent = "Tom";
price1.textContent = "$20";
book1.appendChild(title1);
book1.appendChild(author1);
book1.appendChild(price1);
xmlDoc.documentElement.appendChild(book1);

// 解析 XML 文档并获取元素及属性
const xmlStr = `<books>
    <book id="001">
        <title>JavaScript</title>
        <author>Tom</author>
        <price>$20</price>
    </book>
</books>`;
const parser = new DOMParser();
const xmlDoc2 = parser.parseFromString(xmlStr, "text/xml");
const bookList = xmlDoc2.getElementsByTagName("book");
const id = bookList[0].getAttribute("id");
const title = bookList[0].getElementsByTagName("title")[0].textContent;
const author = bookList[0].getElementsByTagName("author")[0].textContent;
const price = bookList[0].getElementsByTagName("price")[0].textContent;
console.log(id, title, author, price); // 001 JavaScript Tom $20
CSV

CSV(Comma-Separated Values)是一种通用的文本格式,用于存储表格数据。它将每个字段用逗号隔开,每行数据单独一行。

JavaScript 并未提供官方的 CSV 解析库,但可以使用第三方库,如 papaparse 和 csv-parse 等,来解析和生成 CSV 格式。例如:

// 使用 papaparse 解析 CSV 格式
const csvStr = "name,age,sex\nTom,18,Male\nLucy,20,Female";
papaparse.parse(csvStr, {
  header: true,
  complete: function(results) {
    console.log(results.data); // [{name: "Tom", age: "18", sex: "Male"}, {name: "Lucy", age: "20", sex: "Female"}]
  }
});

// 使用 csv-parse 解析 CSV 文件
const fs = require("fs");
const parse = require("csv-parse");
fs.createReadStream("data.csv")
  .pipe(parse({
    delimiter: ',',
    columns: true
  }))
  .on("data", function(data){
    console.log(data); // {name: "Tom", age: "18", sex: "Male"}
  });
总结

JavaScript 内置对象和第三方工具提供了丰富的文本格式处理能力,如 JSON、XML、CSV 等。熟练掌握这些技术可以在各种场景下进行高效的处理和转换。