JSON

关于json的一些误解

字号+ 作者:H5之家 来源:H5之家 2015-09-26 15:00 我要评论( )

我们理解的json对象真的对吗? 首先其实包括我在内的一大部分程序员,都经常说将json字符创转换为json对象,将json对象转换为json格式的字符串,其实这种说法并不是特别的合理,当然,本人并非咬文嚼字之人,但是这个概念还是应该区分一下的。 关于json的格

我们理解的json对象真的对吗?
首先其实包括我在内的一大部分程序员,都经常说将json字符创转换为json对象,将json对象转换为json格式的字符串,其实这种说法并不是特别的合理,当然,本人并非咬文嚼字之人,但是这个概念还是应该区分一下的。
关于json的格式以及它的一些基本概念,我们在这里就不多做解释了,大家自行看我上边的推荐就可以了,相信大家也对json有着比较深入的了解,我们今天就我之前对json的误解做一些解释,如果已经对其有深入了解的朋友请绕过,或者看完后批评指正。
好的’闲话少叙。
json只不过是前后台为了方便传输,所做的一种固定格式的字符串,首先,我们说下我刚才说的(“json字符创转换为json对象,将json对象转换为json格式的字符串”)为什么不对,举个例子大家就明白了
view plaincopy
var testJson = ‘{“a”:”b”}’

上边是json字符串
view plaincopy
var testJson = {“a”:”b”}

上边是json格式的对象字面量,而非json对象
通过上边的例子其实我们可以得出一个结论,其实这个取决于上下文,在string上下文里使用带有大括号的JavaScript对象,那它就是JSON字符串,而如果在对象字面量上下文里使用的话,那它就是对象字面量。
json格式验证
另外需要说的一点问题就是大家可能有时候经常觉得为什么解析后的json格式的对象报错,自己再查看的时候又比较费劲,可以尝试下上边推荐的json在线验证器,个人感觉比较方便。
json解析
其实并非没有json对象,只不过并非我们之前传统意义上认识到的json对象,而且这也是我们为什么将上边的概念区分开的一个非常重要的理由,在新版的浏览器里JSON对象已经被原生的内置对象了,目前有2个静态方法:JSON.parse用来将JSON字符串反序列化成对象,JSON.stringify用来将对象序列化成JSON字符串。老版本的浏览器不支持这个对象,但你可以通过json2.js来实现同样的功能。
如何解析json格式的字符串成为javascript对象字面量呢?这个地方我们可以有几个方式,我们在上边推荐的w3cSchool中的json学习中也有比较详细的讲解,在这里我们就简单的带过,首先eval这种方式,由于安全问题,我们基本弃用,另外在一些老版的浏览器中并不支持JSON对象的这种解析,我们可以引入外部包的方式解决,https://github.com/douglascrockford/JSON-js这里边json2.js较好的解决了这个问题,大家可以尝试下。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
i