什么是 JSON?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写。它是基于 JavaScript 的一种语法,但是 JSON 可以被用于任意编程语言。
JSON 使用键值对的方式来表示数据,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象等格式。
JSON 字符串格式
JSON 字符串是由一组字符串、数组和对象组成的文本字符串,格式如下:
"{"key1":"value1","key2":"value2"}"
其中,key 代表属性名,被包裹在双引号之间,value 代表属性值,与 key 之间以冒号分隔,每个属性之间以逗号分隔。整个 JSON 字符串以大括号包裹。
将 JSON 字符串转换成 JSON 对象
JavaScript 提供了两个函数,用来将 JSON 字符串转换成 JSON 对象:JSON.parse() 和 eval()。
JSON.parse()
JSON.parse() 函数可以将 JSON 字符串转换成 JSON 对象。它接受一个 JSON 字符串作为参数,并返回一个 JavaScript 对象。
下面是一个例子:
const jsonStr = '{"key1":"value1","key2":"value2"}';
const jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // {key1: "value1", key2: "value2"}
在这个例子中,我们先定义了一个 JSON 字符串,然后使用 JSON.parse() 函数将其转换成 JavaScript 对象,并将结果打印在控制台上。
eval()
eval() 函数可以将任何 JavaScript 代码作为参数,并将其执行,返回最后一个表达式的值。对于 JSON 字符串,我们可以使用 eval() 函数来将其转换为对象。
下面是一个例子:
const jsonStr = '{"key1":"value1","key2":"value2"}';
const jsonObj = eval("(" + jsonStr + ")");
console.log(jsonObj); // {key1: "value1", key2: "value2"}
在这个例子中,我们使用括号将 JSON 字符串包裹起来,并将其作为 eval() 函数的参数。最后,eval() 函数将 JSON 字符串转换为 JavaScript 对象,并将其打印在控制台上。
将 JSON 对象数组转换成 JSON 字符串
我们可以使用 JSON.stringify() 函数将 JSON 对象转换成 JSON 字符串。它接受一个 JavaScript 对象作为参数,并返回一个 JSON 字符串。
下面是一个例子:
const jsonObjArr = [{name: 'Mike', age: 28}, {name: 'John', age: 35}];
const jsonStr = JSON.stringify(jsonObjArr);
console.log(jsonStr); // '[{"name":"Mike","age":28},{"name":"John","age":35}]'
在这个例子中,我们先定义了一个包含两个 JavaScript 对象的数组,然后使用 JSON.stringify() 函数将其转换成 JSON 字符串,并将其打印在控制台上。
总结
JSON 是一种轻量级的数据交换格式,易于阅读和编写。我们可以使用 JSON.parse() 函数将 JSON 字符串转换成 JavaScript 对象,使用 JSON.stringify() 函数将 JavaScript 对象转换成 JSON 字符串。
在处理 JSON 数据的时候,我们需要注意格式是否正确。另外,使用 eval() 函数转换 JSON 数据时,需要注意安全问题。