JavaScript JSON是JavaScript语言中与JSON(JavaScript Object Notation)数据交换格式相关的API和工具集合。其中JavaScript JSON 22是JSON对象的方法之一,主要用于将JSON字符串转换成JSON对象。
例如,有一个JSON格式的字符串:
{ "name": "张三", "age": 18, "address": { "province": "广东省", "city": "深圳市", "district": "南山区" } }
使用JavaScript JSON 22方法,可以将这个字符串转换成一个JSON对象:
const jsonString = '{ "name": "张三", "age": 18, "address": { "province": "广东省", "city": "深圳市", "district": "南山区" } }'; const jsonObj = JSON.parse(jsonString); console.log(jsonObj);
输出结果为:
{ "name": "张三", "age": 18, "address": { "province": "广东省", "city": "深圳市", "district": "南山区" } }
JavaScript JSON 22方法的语法为:
JSON.parse(text, reviver)
其中,text参数表示要解析的JSON字符串,reviver参数是一个可选函数,用于在返回之前修改解析器的返回值。
例如,有一个JSON格式的字符串:
{ "name": "李四", "age": 20, "address": { "province": "广东省", "city": "深圳市", "district": "罗湖区" } }
使用JavaScript JSON 22方法,并结合reviver参数,可以在返回之前修改其中的数据:
const jsonString = '{ "name": "李四", "age": 20, "address": { "province": "广东省", "city": "深圳市", "district": "罗湖区" } }'; const jsonObj = JSON.parse(jsonString, (key, value) =>{ if (key === 'address') { value.district = '福田区'; } return value; }); console.log(jsonObj);
输出结果为:
{ "name": "李四", "age": 20, "address": { "province": "广东省", "city": "深圳市", "district": "福田区" } }
上面的例子中,reviver函数判断了解析器当前解析的数据是否为address属性,如果是,则将其中的district属性修改为福田区。
需要注意的是,JSON.parse()方法只能解析符合JSON规范的字符串,否则会抛出语法错误。例如,下面的字符串就无法解析:
const jsonString = 'abc'; const jsonObj = JSON.parse(jsonString); // SyntaxError: Unexpected token a in JSON at position 0
总的来说,JavaScript JSON 22非常方便地将JSON字符串转换成JSON对象,并且通过reviver参数可以在返回之前修改其中的数据,是JavaScript中操作JSON数据的重要方法之一。