Javascript处理JSON方法JSON.parse()和JSON.stringify()
JSON 是用于存储和传输数据的格式,它通常用于服务端向网页传递数据 。而在前端页面js处理中,经常会将字符串和对象进行互相转换,js提供了一个JSON对象来处理这种转换。JSON对象包含两个方法:用于解析 JSON 的 parse() 方法,以及将对象/值转换为 JSON字符串的 stringify() 方法。除了这两个方法, JSON这个对象本身并没有其他作用,也不能被调用或者作为构造函数调用。
1. JSON.parse()
JSON.parse() 方法用于将一个 JSON 字符串转换为对象,并返回转换后的对象。
语法:
JSON.parse(text[, reviver])
参数说明:
text:必需, 一个有效的 JSON 字符串。
reviver:可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
举例:
<script> // 定义一个json字符串 var str = '[{"id":"1","name":"zhangsan","age":100},{"id":"2","name":"lisi","age":80}]'; // 默认转换 var obj1 = JSON.parse(str); // 使用回调函数 var obj2 = JSON.parse(str, function (k, v) { // 给key为name的对象成员值加上_china if (k == 'name') { return v + '_china'; } return v; }); console.log(obj1); console.log(obj2); </script>
在控制台中打印以上代码结果,如下:
注意:
1. 属性名称必须是双引号括起来的字符串,最后一个属性后不能有逗号。
2. 数值禁止出现前导零( JSON.stringify 方法自动忽略前导零,而在 JSON.parse 方法中将会抛出 SyntaxError);如果有小数点, 则后面至少跟着一位数字。
3. 只有有限的一些字符可能会被转义;禁止某些控制字符; Unicode 行分隔符 (U+2028)和段分隔符 (U+2029)被允许 ; 字符串必须用双引号括起来。
2. JSON.stringify()
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
语法:
JSON.stringify(value[, replacer[, space]])
参数说明:
value:必需, 要转换的 JavaScript 值(通常为对象或数组)。
replacer:可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
space:可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
举例:
<script> // 定义一个实例对象 var obj = [{id: "1", name: "zhangsan", age: 100}, {id: "2", name: "lisi", age: 80}]; // 默认转换 var str1 = JSON.stringify(obj); // 使用replacer回调函数 var str2 = JSON.stringify(obj, function (k, v) { // 给key为name的对象成员值加上_china if (k == 'name') { return v + '_china'; } return v; }); console.log(str1); console.log(str2); </script>
在控制台中打印以上代码结果,如下:
更多推荐
所有评论(0)