js json 与字符串 转换过程由于书写不统一规范引发的一个问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 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 字符串

 

以上是关于js json 与字符串 转换过程由于书写不统一规范引发的一个问题的主要内容,如果未能解决你的问题,请参考以下文章

js中js数组对象与json之间的转换

JSON字符串与JS对象之间的转换

js如何把二维数组转换成json字符串格式

js中 json对象与json字符串相互转换的几种方式

用JS制作一个信息管理平台

js 的书写位置——三大核心——变量——输出语法——js 的数据类型——检测数据类型——数据类型转换——检测非数字的方法——运算符——条件分支 - if——条件分支 - switch