码迷,mamicode.com
首页 > Web开发 > 详细

[JS]JSON

时间:2020-03-05 13:21:27      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:规范   跳过   def   通用   rev   serialize   ret   define   编程语言   

基本概念:
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

标签:规范   跳过   def   通用   rev   serialize   ret   define   编程语言   

原文地址:https://www.cnblogs.com/feng-fengfeng/p/12419535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!