JSON(JavaScript Object Notation )是一种轻量级的数据交换格式,采用彻底独立于语言的文本格式,JSON是JavaScript原生数据格式。
php
在JSON中,有两种数据结构:对象和数组。
git
1.一个对象以“{”开始,“}”结束。每一个“名称”后跟一个“:”,“名称/值”对之间运用“,”分隔,名称用引号括起来,若是是字符串则必须用括号,数值类型则不须要。ajax
例:var obj={"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"};json
2.数组是值的有序集合,一个数组以“[”开始,以“]”结束,值之间用“,”分隔。
数组
例:var jsonranklist=[{"xlid":"cxh","xldigitid":123456,"topscore":2000,"topplaytime":"2009-08-20"},{"xlid":"zd","xldigitid":123456,"topscore":1500,"topplaytime":"2009-11-20"}];数据结构
为了方便处理JSON数据,JSON提供了json.js包,下载地址:http://www.json.org/json.js函数
在数据传输流程中,json是文本,即以字符串形式传递,而JS操做的是json对象,因此,JSON对象和JSON字符串之间能够相互转换。
测试
JSON字符串:
spa
var str1 = '{ "name": "cxh", "sex": "man" }';对象
JSON对象:
var str1 = { "name": "cxh", "sex": "man" };
3.JSON字符串转换为JSON对象:
//JSON字符串转换JSON对象
var Obj = eval('('+ str +')');
var Obj = JSON.parse(str);
var Obj = str.parseJSON();
使用的时候直接,alert(Obj.name)。
*注:若是Obj自己就是一个JSON对象,用eval()函数处理后,结果仍是JSON对象,但用parseJSON()处理会抛出语法异常。
4.JSON对象转化为JSON字符串。
var str1 = Obj.toJSONString();
var str2 = JSON.stringgify(obj);
今天测试遇到的问题,php在将数据回传给ajax时发现,用echo和print_r都没有问题,var_dump回传的数据在转换成JSON对象时失败 ,请大神详解~~