js json 与字符串 转换过程由于书写不统一规范引发的一个问题
2016-02-02 16:57
302 查看
对于两个字符串:
字符串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/中进行格式验证时,出
字符串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 字符串
字符串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 字符串
相关文章推荐
- css3 动画应用 animations 和transtions transform在加上JavaScript 可以实现硬件加速动画。
- Json二进制数据
- 将文本内容解析成json格式
- js 将字符串转换为日期类型
- js数组复制
- 不用 eval 的方式通过字符串调用 JavaScript 的方法
- javascript对象的创建方式,原型,方法
- replace替换,js与C#的区别
- 1013: [JSOI2008]球形空间产生器sphere 高斯消元
- JS对象的深拷贝
- Javascript类型、值和变量1
- js jsonp跨域请求实现
- AJAX 跨域请求 - JSONP获取JSON数据
- 重学JavaScript(词法结构扫盲点)
- 第九章 JSP标签——《跟我学Shiro》
- js封装class
- JavaScript标签放在HTML的末尾
- javascript实现键盘按下回车时触发
- 工作中用到的js验证
- OpenStack 绘制JS(D3)引用与模板