Json

来源:互联网 发布:淘宝女鞋品牌 编辑:程序博客网 时间:2024/06/06 03:35

1、Json格式:键值对;
键可以是字符串也可以数字;
值可以是字符串也是可以是数值,还可以是数组;
2、Json对象和json字符串的区别:
json字符串是json对象的string形式,也就是string,但是符合json对象的格式,是指使用双引号”“或单引号”包括的符合json格式要求的字符串;
例如:

 var str1 = '{ "name": "张三", "sex": "男" }'; var str1 = "{ "name": "张三", "sex": "" }";

json对象时指符合json格式要求的js对象;
例如:

 var str2 = { "name": "张三", "sex": "男" };  

3、Json两种结构
对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,例如:

 var str2 = { "name": "张三", "sex": "男" };  

在面向对象的语言中,key为对象的属性,value为对应的属性值,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,”javascript”,”vb”,…],取值方式和所有语言中一样,
使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

{    "people": {        "chinese": [            {                "name": "张三",                "age":15            },            {                "name": "李四",                "age": null            }        ]}

4、js中操作Json对象和Json字符串的方法

4.1、JSON.stringify()方法:stringify()用于从一个对象解析出字符串例如:

这里写图片描述
图1和图2显示str1是一个json对象

这里写图片描述
图3和图4显示str1是一个json对象,利用JSON.stringify()将对象转换成了字符串。

4.2、JSON.parse()方法:parse()用于从一个json格式的字符串解析出json对象(或者var object= jsonstr.parseJSON(); 和var object= $.parseJSON(jsonstr);)例如:

这里写图片描述
图5和图6,可以看出str1是一个json格式的字符串;

这里写图片描述
图7和图8和图9,可以看出str1是一个json格式的字符串;利用JSON.parse()可以将字符串转为json对象,并且可以用对象的key来获取value,格式是object.key;

4.3、eval()方法:eval()可以将json字符串转换成json对象;eval('(' + jsonstr + ')'); 注意需要在json字符串外包裹一对小括号

这里写图片描述
由图10和图11看出,在只是一个单纯的json字符串时,如果不加一对小括号,会报错,而如果这个json字符串在一个json数组中,即时只有一个元素,利用eval()时,就不需要包裹一对小括号;
这里写图片描述
由图12和图13看出,在只是一个单纯的json字符串时,在json字符串外加一对小括号(这个括号,也可以加在eval()方法内),就不会报错了,如果一个json数组有多个元素时,利用eval()时,加不加一对小括号都不会有问题。

0 0