JSON字符串和对象之间的转换详解

 更新时间:2015年05月26日 09:00:29   投稿:hebedich  
这篇文章主要介绍了JSON字符串和对象之间的转换详解,需要的朋友可以参考下

JSON(JavaScript Object Notation) 是JavaScript编程语言的一个子集。正因JSON是JavaScript的一个子集,所以它可清晰的运用于此语言中。

eval函数 JSON文本转换为对象

为了将JSON文本转换为对象,可以使用eval函数。eval函数调用JavaScript编辑器。由于JSON是JavaScript的子集,因此编译器将正确的解析文本并产生对象结构。文本必须括在括号中避免产生JavaScript的语法歧义。
var obj = eval('(' + JSONTest + ')');eval函数非常快速。它可以编译执行任何JavaScript程序,因此产生了安全性问题。当使用可信任与完善的源代码时才可以使用eval函数。这样可以更安全的解析JSON文本。使用XmlHttp的web应用,页面之间的通讯只允许同源,因此是可以信任的。但这却不是完善的。如果服务器没有严谨的JSON编码,或者没有严格的输入验证,那么可能传送包括危险脚本的无效JSON文本。eval函数将执行恶意的脚本。

JSON解释器 JSON.parse、JSON.stringify

使用JSON解析器可以防止像eval函数转换JSON文本为对象那样的安全隐患。JSON解析器只能辨识JSON文本,拒绝所有脚本。提供了本地JSON支持的浏览器的JSON解析器将远快于eval函数。

目前,Firefox、Opera、IE8以上版本也提供了本地JSON支持。其中,JSON解释器提供的函数有:JSON.parse、JSON.stringify。

对于那些并不提供本地JSON支持的浏览器可以引入脚本json2.js,来实现JSON转换功能。json2.js脚本可到https://github.com/douglascrockford/JSON-js/blob/master/json2.js页面下载。

JSON.parse 函数

将JSON文本转换为对象。
JSON.parse(text[, reviver])
参数
text
必选项。要转换为对象的JSON文本。
reviver
可选项。该参数是个替换函数。在转换中,遍历的每个节点,都将执行该函数,该函数的返回值将替代转换结果的相应节点值。

JSON.stringify 函数

将对象转换为JSON文本。
JSON.stringify(value[, replacer[, space]])
参数
text
必选项。要转换为JSON文本的对象。
reviver
可选项。该参数是个替换函数。在转换中,遍历的每个节点,都将执行该函数,该函数的返回值将替代转换结果的相应节点值。
space
可选项。格式化输出JSON文本缩进的空格数量。如果不提供该参数将不会格式化输出。
参数reviver的委托类型
reviver(key, value)
reviver函数的中的this是当前所遍历到的节点的父节点。当所遍历的是根节点的时候,父节点是个Object对象,根节点是该对象的一个属性,属性名是空字符串。
参数
key
当父节点是数组Object,key为数组索引,否则key为Object属性名。
value
节点值。
注:JSON不支持循环数据结构。

jQuery.parseJSON( jsonTex )

jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。

以上所述就是本文的全部内容了希望大家能够喜欢。

相关文章

  • JSON.stringify 语法实例讲解

    JSON.stringify 语法实例讲解

    可能有些人对系列化这个词过敏,我的理解很简单。就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的)。就这么简单。打个比方说,你有一个类,那么你可以通过这个方法转换成相应的json类型的
    2012-03-03
  • 详解JSON1:使用TSQL查询数据和更新JSON数据

    详解JSON1:使用TSQL查询数据和更新JSON数据

    这篇文章主要介绍了使用TSQL查询数据和更新JSON数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • javascript操作JSON的要领总结

    javascript操作JSON的要领总结

    JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包,需要的朋友可以了解下
    2012-12-12
  • json 定义

    json 定义

    json一些实例定义
    2008-06-06
  • JSON 必知必会 观后记

    JSON 必知必会 观后记

    这篇文章主要介绍了个人看了JSON 必知必会一书的读后感,此书从各个方面介绍了json的一些注意事项与优缺点。
    2016-10-10
  • 解读JSON的三种格式

    解读JSON的三种格式

    这篇文章主要介绍了解读JSON的三种格式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • JSON 数据格式介绍

    JSON 数据格式介绍

    这篇文章讲的比较深入,所以不用我画蛇添足了,只是下面这段代码很好的演示了JSON如何处理字符串数据
    2012-01-01
  • 用JSON做数据传输格式中的一些问题总结

    用JSON做数据传输格式中的一些问题总结

    Json 凭借其自身的优势,在Web数据处理方面已经占据了一定的位置,这段时间涉及到用Json做为数据传输格式的项目有3个,其中有部分页面就采用了Json 数据传输格式, 这里我总结下这段时间采用这种方式的一些问题总结
    2011-12-12
  • 将nodejs打包工具整合到鼠标右键的方法

    将nodejs打包工具整合到鼠标右键的方法

    昨天放出了主要的nodejs打包代码(《nodejs写的简单项目打包工具》),今天放出整合到鼠标右键的代码,打包需要配置环境变量,添加NODE_PATH为node安装路径
    2013-05-05
  • JavaScript中的JSON 中文版翻译

    JavaScript中的JSON 中文版翻译

    JSON是JavaScript面向对象语法的一个子集。由于JSON是JavaScript的一个子集,因此它可清晰的运用于此语言中。
    2009-10-10

最新评论