Fork me on GitHub

js将字符串转json

从JSON文件中读取json字符串

//列表模拟数据
var jsondata;
$.getJSON("/jsondata/devicelist.json", function (data) {
jsondata = data;
console.info(data)
});

Json格式字符串

"{"rows":[{"date":"2018-11-19","money":"22","type":"2"}],"currentTime":"2018-11-19","reportType":"day"}"

Json对象

{
"rows": [{
"date": "2018-11-19",
"money": "22",
"type": "2"
}],
"currentTime": "2018-11-19",
"reportType": "day"
}

总结:Json字符串只不过是json对象边缘加个双引号,注意,json字符串key的引号只能为双引号,单引号不行

1、jQuery插件支持的转换方式: 

示例:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 

2、浏览器支持的转换方式(Firefox,chrome,opera,safari,ie)等浏览器:

示例:

JSON.parse(jsonstr); //可以将json字符串转换成json对象 

JSON.stringify(jsonobj); //可以将json对象转换成json对符串 

注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。 

3、Javascript支持的转换方式: 

eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 

 注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。 

4、JSON官方的转换方式: 

http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法; 

可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

综上,首先推荐1,其次是4,2兼容性不好,3会执行内容中的表达式带来一些不必要的问题。

 

原文

posted @ 2019-01-23 08:56  秋夜雨巷  阅读(4944)  评论(0编辑  收藏  举报