json数据简述

json数据

Json是互联网上结构化数据的传输标准;javascript,php等语言对其支持度都很好。

Json最重要的一点是小巧轻便,便于数据的传输,无关乎语言,php里可用json_decode和json_encode函数进行json数据的解析与序列化。(解析既把json数据转换为便于操作的类型比如数组,序列化则把便于操作的数据类型转化为json数据)。

下面讲讲js里面的json:

Json数据类型有三种:

1.简单值。简单值就是串数字或者字符,但字符必须用双引号引起,单引号会出错,如下数值量:5字符量:”this is json string”

2.对象。结构如下

{

“key1”:”value1”,

“key2”:”value2”

}

属性名必须用双引号引起,值为字符类型时也必须用双引号;同一对象中不能出现相同的属性如

{

“key2”:”value2”,

“key2”:”value2”

}

这是不被允许的

3.数组。结构如下

[

{

“key1”:”value1”,

”key2”:”value2”

},

{

“key1”:”value1”

},

{

“key1”:”value1”

},

]

json数据的应用主要是对象与数组类型结合起来传输复杂的数据

Json数据的解析与序列化:

先看代码

var user = {

"source" : {

"sname" : "javascript高级程序设计",

"id" : "11",

"price" : "59"

},

"person" : {

"uname" : "梁",

"uid" : "18",

"age" : "20"

}

};/*此分号为js的语句结束符,json里是没有的*/

var json1 = JSON.stringify(user,["source"]);

/* json1输出为{"source":{}}*/

json2=JSON.stringify(user);

/*json2={"source":{"sname":"javascript高级程序设计","id":"11","price":"59"},"user":{"uname":"梁","uid":"18","age":"20"}}*/

json3 = JSON.stringify(user,null,4);

/*

json3输出如下:

{

"source": {

"sname": "javascript高级程序设计",

"id": "11",

"price": "59"

},

"user": {

"uname": "梁",

"uid": "18",

"age": "20"

}

}

*/

var arr = JSON.parse(json1);

/*对json1,json2,json3进行typeof操作得到string类型,对arr进行typeof操作得到object类型而user本身也是object类型*/

/*现在可以访问arr里面的数据了,和访问user内部数据的方法完全相同了*/

解析:JSON.parse(),解析为数组对象。可以有两个参数,第一个为json数据,第二个为一个有两个参数(key,value)的函数,key为值接受json数据里的key值,value为相应的value值,且函数需要有返回值,否则所有删除json数据中相对的值

序列化:JSON.stringify();接受三个参数,第一个为要序列化的对象(必须),第二个为可选的过滤参数(把key不等于数组里值全部过滤,json1里的user就被过滤了)也可以是数组也可以是上述所说的有两个参数的函数类型,第三个参数为字符串缩进,值为0~10

Json做为一种数据格式,用起来确实挺方便,国创时做的事手机app,客户端与服务器之间的数据交换就是用json格式进行的,并且php里把数组转换为json特特别容易,但需留意的是json只接受utf8格式的数据,其它格式不能正确转换

你可能感兴趣的:(json数据简述)