JSON(即 JavaScript 对象表示法)是一种轻量级的数据交换格式,以纯文本形式存储数据。在前端开发中,我们经常需要使用 JSON 格式来传递数据。在 ECMAScript 2015 中,使用 JSON 对象也变得更加方便。
什么是 JSON 对象
JSON 对象是一个全局对象,可用于解析 JSON 数据和字符串。
JSON.parse(text[, reviver]) JSON.stringify(value[, replacer[, space]])
其中,JSON.parse()方法用于解析 JSON 数据,返回一个 JavaScript 对象;JSON.stringify()方法则用于将 JavaScript 对象转化成 JSON 字符串。
JSON.parse() 的使用
我们可以使用 JSON.parse() 方法将一个 JSON 字符串解析成一个 JavaScript 对象。该方法的第一个参数为待解析的 JSON 字符串。
const jsonStr = '{"name":"John", "age":30, "city":"New York"}'; const obj = JSON.parse(jsonStr); console.log(obj.name); // "John" console.log(obj.age); // 30 console.log(obj.city); // "New York"
我们还可以在解析时定义一个回调函数(reviver),可对解析得到的每个键值对进行处理。该回调函数接收两个参数:键和值。
const jsonStr = '{"name":"John", "age":"30", "city":"New York"}'; const obj = JSON.parse(jsonStr, function(key, value) { if (key === 'age') { return parseInt(value); } return value; }); console.log(obj.age); // 30
JSON.stringify() 的使用
我们可以使用 JSON.stringify() 方法将一个 JavaScript 对象转化为 JSON 字符串。该方法的第一个参数为待转换为 JSON 的 JavaScript 对象。
const obj = { name: 'John', age: 30, city: 'New York' }; const jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"name":"John","age":30,"city":"New York"}
我们还可以在转化时传递第二个参数(replacer),可定义一个函数或数组,用于规定转换过程中需要包含哪些属性。
const obj = { name: 'John', age: 30, city: 'New York' }; const jsonStr = JSON.stringify(obj, ['name', 'age']); console.log(jsonStr); // {"name":"John","age":30}
我们还可以定义一个回调函数,用于处理转换过程中包含的每个属性。
const obj = { name: 'John', age: 30, city: 'New York' }; const jsonStr = JSON.stringify(obj, function(key, value) { if (key === 'age') { return undefined; } return value; }); console.log(jsonStr); // {"name":"John","city":"New York"}
总结
在 ECMAScript 2015 中,使用 JSON 对象可以更加方便地处理 JSON 数据和字符串。我们可以使用 JSON.parse() 方法将 JSON 字符串解析成 JavaScript 对象,也可以使用 JSON.stringify() 方法将 JavaScript 对象转化成 JSON 字符串。在使用时,我们还可以定义回调函数或者数组,用于规定或处理需要包含或忽略的属性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64cfa36eb5eee0b5256d7259