JavaScript JSON

JavaScript Object Notation(JavaScript 对象标记法)

JSON 是一种存储和交换数据的语法。
JSON 是通过 JavaScript 对象标记法书写的文本。
JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"

json对象使用与javascript基本一致

存储数据

1. 转换成json字符串:
var myJSON =  JSON.stringify(data);

serializeArray()  数据转换后:
    [{"name":"aa","value":"小明"},{"name":"bb","value":"12"}](变化是name加了引号)

serialize()(aa=id&bb=12)数据转换后:
    "aa=ld&bb=12"(变化是整体加了引号)

js对象  数据转换后:
    {"name":"ld","age":12}(变化是name加了引号)

如果我们还想要精确控制如何序列化小明,可以给xiaoming定义一个toJSON()的方法,直接返回JSON应该序列化的数据:
var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    middle-school: '"W3C" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp'],
    toJSON: function () {
        return {    // 只输出name和age,并且改变了key:
            'Name': this.name,
            'Age': this.age
        };
    }
};

JSON.stringify(xiaoming);     // '{"Name":"小明","Age":14}'


2. 通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象:
    var obj =  JSON.parse(data);(变化是name去了引号)

document.getElementById("demo").innerHTML = obj.name;

JSON 数据 名称和值

JSON 名称需要双引号。而 JavaScript 名称不需要。
JSON
{ "name":"Bill Gates" }
JavaScript
{ name:"Bill Gates" }

在 JSON 中,值必须是以下数据类型之一:
字符串
数字:{ "age":30 }
对象(JSON 对象):{"employee":{ "name":"Bill Gates", "age":62, "city":"Seattle" }}
数组:{"employees":[ "Bill", "Steve", "David" ]}  or  [  "Porsche", "BMW", "Volvo" ]
布尔:{ "sale":true }
null:{ "middlename":null }

JSON 的值不可以是以下数据类型之一:
1. 函数
2. 日期:JSON.stringify() 函数将把任何日期转换为字符串。
3. undefined
原文地址:https://www.cnblogs.com/loveer/p/11341613.html