如何用 JavaScript 读写和解析 JSON
JSON的全称是JavaScript Object Notation,它源于JavaScript编程语言。一种定义结构化数据的标准文本格式是基于JavaScript对象语法的。网络应用中的数据传输是通过JSON进行的。你听说过JavaScript对象字面语法吗?是的,JSON与它很相似。我们并不局限于总是用JavaScript来使用它。
JSON与JavaScript。如何比较它们?
JSON看起来像JavaScript,这一点并不含糊,但是,最简单的方法是把JSON看作是一种数据格式,与文本文件相似。由于JSON受到JavaScript语法的启发,这就是它们看起来相似的原因。
JSON的特点
- 用羽毛状的格式来交换数据
- 被写成JavaScript对象符号的纯文本
- 通过JSON实现在计算机之间发送数据的目的。
- 它是独立于语言的,所以在JSON的情况下,你不必担心语言的兼容问题。
JSON的格式
JSON格式完全是基于文本的,它来自于JavaScript对象语法。当你处理JSON时,你肯定会处理.json文件,那是JSON对象被放置的地方,但它们也可以作为JSON对象或字符串存在于程序的背景中。
每当你处理一个.json文件时,你会看到以下内容。
{
"firstName": "John",
"lastName": "Doe",
"Online": true
}
如果,你正在与一个放置了JSON对象的.js或.html文件进行交互,你会看到以下内容。
字符串形式的JSON
var userName = '{"firstName": "John",
"lastName": "Doe",
"location": "New York"}';
如何在JavaScript中读/写文件
Nodejs为我们提供了一个模块,它有一堆的功能,如读文件、写文件等。它还有很多其他的工具,可以帮助我们在文件系统中工作。它被称为 "browserify-fs"。
现在我们知道 "browserify-fs "是什么了,让我们来安装它。在你的编辑器中使用以下命令来安装 "browserify-fs"。
> npm install browserify-fs
安装成功后,在需要的程序中导入 browserify-fs 模块。现在我们可以使用不同的功能来写入文本或从文件中读取文本。
现在,我们可以通过将 "browserify-fs "导入我们的JavaScript文件中,以如下方式使用它。
const fileSystem = require("browserify-fs")
如果您想了解更多关于如何在 javaScript 中导入库的信息,请访问我们的专门文章。
先决条件。 [如何在 JavaScript 中导入一个库]
一旦你成功导入了browserify-fs库,让我们开始阅读一个JSON文件。
如何读取JSON文件
假设我们有一个client.json文件,我们想读取它。
//client.json
{
"Name": "Mini Corp.",
"Order_count": 83,
"Address": "Little Havana"
}
现在,我们将利用 fileSystem.readFile() 从 client.json 文件加载数据。我们将简单地传递文件的路径,并接收数据,这是一个回调函数。
const fileSystem = require("browserify-fs")
fileSystem.readFile("./client.json", (err, data) => {
if(err) {
console.log("File reading failed", err)
return
}
console.log("File data:", data)
})
文件的内容在被成功读取后将被传递给回调函数。
现在,为了将获取的数据解析为纯JSON格式,将使用JSON.parse()方法,最终的代码是这样的。
const fileSystem = require("browserify-fs")
fileSystem.readFile("./client.json", (err, data) => {
if(err) {
console.log("File can't be read", err)
return
}
try{
const client = JSON.parse(data)
console.log("client data is:", client)
}
catch(err) {
console.log("Error parsing JSON string:", err)
}
})
一旦你执行上述提供的代码,JSON数据将被读取并显示在控制台,正如我们所期望的那样。
如何写一个JSON文件
对于以异步方式写入数据,我们将使用fileSystem.writeFile()方法。如果我们想用JavaScript在JSON文件中写一些东西,我们首先需要使用JSON.stringify方法将数据转换成JSON字符串。
这个方法将把一个JavaScript对象转换为一个JSON字符串,可以写入一个文件。
const fileSystem = require("browserify-fs")
const client = {
"Name": "Mini Corp.",
"Order_count": 83,
"Address": "Little Havana"
}
const data = JSON.stringify(client)
console.log(data)
以上,一个带有我们数据的客户端对象已经被创建,然后变成了一个字符串。
现在,我们将简单地编写fileSystem.writeFile()方法,将JSON数据写入newClient.json文件中。
const fileSystem = require("browserify-fs")
const client = {
"Name": "Mini Corp.",
"Order_count": 83,
"Address": "Little Havana"
}
const data = JSON.stringify(client)
fileSystem.writeFile("./newClient.json", data, err=>{
if(err){
console.log("Error writing file" ,err)
} else {
console.log('JSON data is written to the file successfully')
}
})
这就是我们如何使用fileSystem.writeFile()函数写入一个JSON文件。
如何将一个字符串解析为JSON
在JavaScript以及JSON术语中,解析指的是JSON字符串被解析,然后转换为JavaScript值或字符串描述的对象的想法。在返回结果对象之前,可以对其进行转换。
就像我们之前从JSON文件中读取数据的例子一样,我们只是从文件中获取数据,它是以字符串的形式存在。在获取数据后,我们将该字符串解析为JSON,如下图所示。
假设我们有一些字符串格式的JSON数据。
所以这就是如何使用JSON.parse()方法,将字符串解析成JSON格式。
如何将JSON解析为字符串
同样地,要将JSON解析成字符串,需要使用JSON.stringify()方法。
const client = {
"Name": "Mini Corp.",
"Order_count": 83,
"Address": "Little Havana"
}
const data = JSON.stringify(client)
console.log(data)
所以这就是如何使用JSON.stringify()方法,将JSON解析成字符串格式。
结论
写这篇文章的目的是为了提供一个完整的解释和彻底的描述,说明如何在javascript中轻松地读、写和解析JSON文件。我们能够总结出这样一个事实:通过fileSystem.readFile和fileSystem.writeFile可以轻松实现读写功能。
我们讨论了这两个组件的相关功能,并解释了我们如何通过使用这些功能进行操作。然后我们精确地解释了解析JSON方法的方法。
因此,我们能够提供在JavaScript中读、写和解析JSON方法所需的所有必要的重要细节。
上一篇: JavaScript 下划线(第三方库)