情诗网 >情感说说 > 正文

说说JSON

来源:情诗网    2020-11-13    分类:情感说说

JSON(JavaScript对象表示法),它的出现让XML渐渐退出了数据交互格式的舞台。JSON是一种轻量级的数据交互格式,很多编程语言都支持对JSON的解析和序列化。


JSON格式实际上只有两个东西:key和value,value可以表示简单值、对象、数组。

1.表示简单值

//最简单的JSON
"SunnyChuan"

2.表示对象

//JSON
{
    "name":"SunnyChuan",//逗号分隔
    "age":21//结尾没有分号
}
//对比JavaScript对象字面量表示
var obj={
    name:"SunnyChuan",
    age:21
};

通过对比可以看出,JSON的key必须用双引号括起来(单引号错误),没有末尾的分号,这两个是常见的错误。

3.表示数组

[
   {
      "name":"SunnyChuan",
      "age":21
   },
   {
      "name":"LuckyJing",
      "age":20
   }
]

4.复杂的JSON
通过对象、数组的组合,JSON可以组合成复杂的形式,数组里嵌套对象,对象里面嵌套数组等,可以通过JSON在线校验工具来测试JSON格式是否正确:http://json.cn/

5.JSON解析和序列化
解析:通过JSON.parse()将JSON数据转化为对象,eval()也可以解析JSON但是不推荐。

//myJson.json文件
{
    "name":"SunnyChuan",
    "age":21
}

//前端代码
window.onload=function(){
    var xml=new XMLHttpRequest();
    xml.onreadystatechange=function()
    {
        if(xml.readyState==4 && xml.status==200)
        {
            console.log(JSON.parse(xhr.responseText).name)//SunnyChuan
        }
    };
    xml.open("get","myJson.json");
    xml.send();
}

序列化:JSON.stringify()将JavaScript对象序列化为JSON数据格式发送给后端。

var obj={
    name:"SunnyChuan",
    age:21
};

//省去一些代码
xml.open("POST","ajax.php");
var data=JSON.stringify(obj);
xml.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xml.send(data);

后端将会接收到字符串{"name":"SunnyChuan","age":21}


JSON作为数据格式是前后端交互必用(也可以用XML)的,个人做项目的时候深深感受到了JSON带来的便利。

热门文章