本篇文章主要介绍了javascript中js对象与json格式字符串的相互转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
首先我们来看一下js中JSON格式的字符串
var JSONStr1 = "{\"name\" : \"张三\"}";
立即学习“Java免费学习笔记(深入)”;
本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
注意以下的写法不是js中JSON格式的字符串,它只是一个js的字符串。
var JSONStr2 = "{'name' : '张三'}";
立即学习“Java免费学习笔记(深入)”;
我们看JSON语法中对于字符串的定义:是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
下面我们来看一下在js中怎么把JSON格式的字符串转换成一个JS对象。(
var jsObj3 = eval("(" + JSONStr1 + ")");
var jsObj4 = JSON.parse(JSONStr1);
立即学习“Java免费学习笔记(深入)”;
推荐使用第二种方式具体原因请参看:http://www.php.cn/
此外提一句使用这两种方式转换后的js对象,应该是“一个符合JSON数据格式的js对象”,也就是说它的属性是带着引号的,这只是我的一种猜测,因为如果JSON格式的字符串如下表示:
var JSONStr1 = "{\"f[name]\" : \"张三\"}";
立即学习“Java免费学习笔记(深入)”;
那么转换后的JS对象的属性必定要加上引号,因为js对象的属性不加引号只能使用字母,数字,下划线和$符号表示,使用其它符号属性就要加上引号了,所以说JS对象字面量表示法中属性加上引号是不会错的。另外如果JSON格式的字符串如上所示,那么转换后的js对象对f[name]取值就不能使用 jsObj4.f[name] 要用 jsObj4['f[name]'] ,因为有特殊字符,这点要注意了。对于我的猜测,读者要有异议,可以提给我。
我们再来看看在js中js对象与JSON格式字符串的转换。下面我准备了几组js对象加以说明:









