对于两个字符串:
字符串1:{title:{},tooltip:{trigger:"axis"},legend:{data:["新关注人数"]},calculable:true,xAxis:[{type:"category",boundaryGap:false,data:["2016-01-01","2016-01-02","2016-01-03","2016-01-04","2016-01-05","2016-01-06","2016-01-07"]}],yAxis:{},series:[{name:"新关注人数",type:"line",data:[11,11,15,13,12,13,10]}]}
字符串2:
{"title":{},"tooltip":{"trigger":"axis"},"legend":{"data":["新关注人数"]},"calculable":true,"xAxis":[{"type":"category","boundaryGap":false,"data":["2016-01-01","2016-01-02","2016-01-03","2016-01-04","2016-01-05","2016-01-06","2016-01-07"]}],"yAxis":{},"series":[{"name":"新关注人数","type":"line","data":[11,11,15,13,12,13,10]}]}
能看出来两个json有什么区别吗?
放在js中,直接当json数据使用,都能正常的解析出json数据。
但是字符串1,在http://www.kjson.com/中进行格式验证时,出
Parse error on line 1: { title: { -----^ Expecting 'STRING', '}'
字符串2却正常的。
当把在js中,把字符串1和字符串都当成字符串转为json格式数据时,字符串1出错,提示,而字符串却能转换为json格式数据。
是什么原因呢,好像看起来也差不了多少,什么原因呢?
从根本来讲来,还得看一下json的语法定义。
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName" : "John"
重要的事情说三遍:名称/值对包括字段名称(在双引号中),一定要记住最是在双引号中
知识延伸:
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
类似 XML
JSON 是纯文本
JSON 具有“自我描述性”(人类可读)
JSON 具有层级结构(值中存在值)
JSON 可通过 JavaScript 进行解析
JSON 数据可使用 AJAX 进行传输
相比 XML 的不同之处
没有结束标签
更短
读写的速度更快
能够使用内建的 JavaScript eval() 方法进行解析
使用数组
不使用保留字
为什么使用 JSON?
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
使用 XML
读取 XML 文档
使用 XML DOM 来循环遍历文档
读取值并存储在变量中
使用 JSON
读取 JSON 字符串
用 eval() 处理 JSON 字符串