调用查询中心msg数据用json二次输出
之前都是用parseJSON来解析json的,这次竟然不行了,前端页面提示parseJSON is not a function
然后用这样就可以了var objs = JSON.parse(data);
这样就行了,同事说是因为返回的json格式不够通用,也是正常的json数组。
-------------------------
JSON.parse 捕获异常的正确方法
function parseJSONSafely(str) { try { return JSON.parse(str); } catch (e) { console.err(e); //返回默认对象,或根据用例返回null。 return {} } } 例子:
//判断JSON.parse异常
function parseJSONSafely(str) {
try {
return JSON.parse(str);
}
catch (e) {
//console.err(e);
//console.log(e);
//返回默认对象,或根据用例返回null。
return null;
}
}
console.log(parseJSONSafely(result.jieguo));
应用于genulne
+++++++++++++++++++++
把方法转json在前台输出
在JSON中,有两种结构:对象和数组。
1. 一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间运用 “,”(逗号)分隔。 名称用引号括起来;值如果是字符串则必须用括号,数值型则不须要。
例如:
var main={ "init":"a","start":"b","end":"c"}
2. 数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间运用 “,”(逗号)分隔。
例如:
var main=[{"init":"a","start":"b","end":"c"},{"aa":"aab","bb":"bbc","cc":"ccd"}];
在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。
一、JSON字符串转换为JSON对象\
//由JSON字符串转换为JSON对象
var obj = eval('(' + str + ')');
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.age);
特别留心:如果obj本来就是一个JSON对象,那么运用 eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用 parseJSON()函数处理后会有疑问(抛出语法异常)。
二、可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。
例如:
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
alert(last);
两个变量,要将a转换成字符串,将b转换成JSON对象:
var a={"name":"Bob","sex":"男","age":"20"}
var b='{"name":"Alice","sex":"女","age":"20"}';
jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON(json),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj)将JSON转为字符串。