JSON语法

作者: 我的天气很好啦 | 来源:发表于2018-07-21 16:28 被阅读182次
1 JSON的特点

JSON是一个轻量级的数据格式,可以简化表示复杂数据结构的工作量。

2 JSON和JS的语法差别

1⃣️JSON语法可以表示三类值:简单值,对象,数组。
JS和JSON,字符串区别是JSON里的字符串必须用双引号,用单引号会有语法错误。

2⃣️JSON对象和JS对象字面量的不同: 1.没有声明变量 2.没有末尾的分号

JS对象字面量的标准方式:

var person = {
     name: "song",
     age:18
};

也可以这样:

var person = {
       "name": "song",
       "age": 18
};

JSON表示对象的方法如下:

{
    "name": "song",
    "age": 18
}
  💗这里补充一条:
  json表示数组的方法: {  "author":[ "age", 25, true]}
3 JSON的序列化

json.stringify()除了要序列化的js对象外,还可以接受两个参数。
☝️ 第一个参数的作用是过滤,参数可以是数组,也可以是函数;
☝️ 第二个参数是一个选项,表示是否在json字符串中保留缩紧。
单独或组合使用这两个参数,可以更全面深入地控制json的序列化。

过滤结果

💛 如果过滤器是数组,则结果中只包含数组中列出来的属性,例:

var book = {
    "title" : "hello",
    "author" : ["song"],
    "edition" : 3,
    "year" : 2011
};
var jsonText = JSON.stringify(book,["title","edition"]);

运行结果:
jsonText={ 
    title:"hello",
    edition:3
};

💙 如果过滤器是函数,传入的函数需要接收两个参数,分别是属性名和属性值,根据属性名可以知道应该如何处理要序列化的对象的属性。例:

var book = {
    "title" : "hello",
    "author" : ["song"],
    "edition" : 3,
    "year" : 2011
};
var jsonText = JSON.stringify(book,function(key, value){
  switch(key) {
    case "author":
      return value.json(",");
    case "year":
      return 5000;
    case "edition":
      return undefined;
    default:
      return value;
  }
})

这里,函数过滤器根据传入的值来决定,如果键是“authors”,就将数组连接为一个字符串;如果键为“year”,则将其值设为5000;如果键为“edition”,通过返回“undefined”删除该属性。
⚠️ 最后一定要提供default项。

                                       🌈总结:

如果把一个对象传进JSON.stringify(),序列化该对象的顺序如下:
1⃣️ 如果存在toJSON()方法,而且能通过他取得有效的值,则调用该方法,否则,返回对象本身。
2⃣️ 如果提供了第二个参数,应用这个函数过滤器,传入函数过滤器的值是1⃣️返回的值。
3⃣️ 对2⃣️返回的每个值进行相应的序列化。
4⃣️ 如果提供了第三个参数,执行相应的格式化。

4 JSON的解析

JSON.parse()方法也可以接收另一个参数,该参数是一个函数,将在每个键值对上调用,这个函数被称为还原函数。例:

var book = {
    "title" : "hello",
    "author" : ["song"],
    "edition" : 3,
    "year" : 2011,
    releaseDate : new Date(2011,11,1)
};
var jsonText = JSON.stringify(book);
var bookCopy = JSON.parse(jsonText, function(key, value){
  if(key == "releaseDate"){
    return new Date(value);
  }else{
    return value;
  }
});

相关文章

  • JSON 语法

    JSON 语法是 JavaScript 语法的子集。 JSON 语法规则 JSON 语法是 JavaScript ...

  • json语法笔记

    *JSON语法 JSON 语法是 JavaScript 语法的子集。 *JSON 名称/值对 JSON 数据的书写...

  • golang生成JSON及解析JSON

    一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法...

  • golang生成JSON及解析JSON

    一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法...

  • json_encode( )和json_decode( )

    介绍【JSON】数组:JSON 语法是 JavaScript 语法的子集。JSON 数组在中括号中书写:数组可包含...

  • json、requests、exception

    一、 json 1.什么是json数据 json是一种特定语法的数据格式 2.json数据的语法 一个json数据...

  • json、异常捕获

    一、json 1.什么是json数据 json是一种具有特定语法的数据格式 2.json数据的语法 一个json数...

  • 19-01-09json数据

    json 1.什么是json数据 json是一种具有特定语法的数据格式 2.json数据的语法 一个json数据有...

  • 01-09json_requests_exception

    一:json 1.什么是json数据 json是一种具有特定语法的数据格式 2.json数据的语法 一个json数...

  • Day 13 josn Exception

    一、json 1.什么是json数据 json是一种具有特定语法的数据格式 2.json数据的语法 一个json数...

网友评论

  • yzn2015:太牛批了,我看不懂:+1:

本文标题:JSON语法

本文链接:https://www.haomeiwen.com/subject/xevhmftx.html