一:JSON字符串转换为JSON对象
JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。
如Ajax等。
1、Javascript 的 eval()函数
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
var person = '{"name":"BeginMan","age":22}';//Json字符串 var personObject = eval("("+person+")"); //解析为Json对象 alert(personObject); //[object Object]
eval 函数非常快,但是它可以编译任何 javascirpt 代码,这样的话就可能产生安全的问题。eval 的使用是基于传入的代码参数是可靠的假设的,有一些情况下,可能客户端是不可信任的。
2、json2.js
为了方便地处理JSON数据,JSON提供了json2.js包,下载地址:https://github.com/douglascrockford/JSON-js/blob/master/json2.js
JSON.parse(JsonText,filter); 将 JavaScript 对象表示法 (JSON) 字符串转换为对象。可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。parse:解析
//导入json2.js //JSON.parse(JsonText,filter);//可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。 var pjson = JSON.parse(person,function(key,value){ alert(key+value);//输出nameBeginMan,age22 })
二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。
1.JSON.stringify(value [, replacer] [, space])作用:将 JavaScript 对象转换为字符串,这个函数的作用主要是为了系列化对象的。
//数据接上面 var pobject = JSON.stringify(personObject); alert(pobject); //输出{"name":"BeginMan","age":22}
例如:
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
2.toJSONString()
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
留心:
上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json2.js包。新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个要领都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。
将两个JSON对象组装到一个里面
function addJson(J1,J2){ if(J1&&J2){ for(var i in J2){ J1[i]=J2[i]; } } } var json1 = {"name":"BeginMan"}; var json2 = {"age":22}; addJson(json1,json2);//由于并没有返回结果,所以只是进行功能上的操作 alert(JSON.stringify(json1)); //输出{"name":"BeginMan","age":22}
参考:
http://www.json.org/json-zh.html
http://www.cnblogs.com/xiaoyaoyou3/archive/2013/04/12/3015903.html
http://blog.csdn.net/sanpintian/article/details/7347711