[JS]JSON
Posted 冯风风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JS]JSON相关的知识,希望对你有一定的参考价值。
基本概念:
JSON(javascript Object Notation)是表示值和对象的通用格式。
最初它是为 JavaScript 而创建的,但许多其他编程语言也有用于处理它的库。
因此,当客户端使用 JavaScript 而服务器端是使用 Ruby/php/Java 等语言编写的时,使用 JSON 可以很容易地进行数据交换。
如何使用:
JavaScript 提供了如下方法:
JSON.stringify 将对象转换为 JSON。
JSON.parse 将 JSON 转换回对象。
对象转为JSON格式
1 let student = { 2 name: ‘John‘, 3 age: 30, 4 isAdmin: false, 5 courses: [‘html‘, ‘css‘, ‘js‘], 6 wife: null 7 }; 8 9 let json = JSON.stringify(student); 10 console.log(json) // {"name":"John","age":30,"isAdmin":false,"courses":["html","css","js"],"wife":null}
得到的 json 字符串是一个被称为 JSON 编码(JSON-encoded) 或 序列化(serialized) 或 字符串化(stringified) 或 编组化(marshalled) 的对象。
字符串使用双引号。JSON 中没有单引号或反引号。所以 ‘John‘ 被转换为 "John"。
对象属性名称也是双引号的。这是强制性的。所以 age:30 被转换成 "age":30。
JSON 支持一下数据类型:
Objects { ... }
Arrays [ ... ]
Primitives:
strings,
numbers,
boolean values true/false,
null
JSON 是语言无关的纯数据规范,因此一些特定于 JavaScript 的对象属性会被 JSON.stringify 跳过。
例如: 函数属性(方法)。
Symbolic 属性。
存储 undefined 的属性。
1 let user = { 2 sayHi() { // 被忽略 3 alert("Hello"); 4 }, 5 [Symbol("id")]: 123, // 被忽略 6 something: undefined // 被忽略 7 }; 8 9 console.log(JSON.stringify(user)); // {}(空对象) // {}
如果我们需要解析JSON字符串,需要另一个方法 JSON.parse(str, [reviver])。
str 要解析的 JSON 字符串。
reviver 可选的函数 function(key,value),该函数将为每个 (key, value) 对调用,并可以对值进行转换。
1 let str = ‘{"title":"Conference","date":"2017-11-30T12:00:00.000Z"}‘; 2 3 let meetup = JSON.parse(str, function (key, value) { 4 if (key == ‘date‘) return new Date(value); 5 return value; 6 }); 7 8 console.log(meetup.date.getDate()); // 30
以上是关于[JS]JSON的主要内容,如果未能解决你的问题,请参考以下文章