我的数据库中有一个字符串我想进入我的页面并转换为JavaScript对象。
[
{id: 1,title: "Long Event",
start: new Date(2009, 5, 6, 14, 0),end: new Date(2009, 5, 11)},
{id: 2,title: "Repeating Event",
start: new Date(2009, 5, 2)},
{id: 3,title: "Meeting",
start: new Date(2009, 5, 20, 9, 0)},
{id: 4,title: "Click for Facebook",
start: new Date(2009, 5, 27, 16),end: new Date(2009, 5, 29),
url: "http://facebook.com/"}
]
如何使用jQuery执行此操作?
答案 0 :(得分:64)
答案 1 :(得分:7)
“官方”json2.js脚本包含2个方法:一个可以安全地将任何JSON字符串解析为对象(JSON.parse),另一个将对象转换为JSON字符串(JSON.stringify)
可以找到脚本here。
在上面的帖子中,我建议使用eval(),但实际上有一种更好的方法来评估JSON(如果你不想使用json2.js脚本):
var obj = (new Function("return " + json))();
使用json2.js脚本:
var obj = JSON.parse(json);
答案 2 :(得分:2)
eval()怎么样?
var obj = eval(jsonString);
答案 3 :(得分:1)
查看JQuery-json插件
var thing = {plugin: 'jquery-json', version: 1.3};
var encoded = $.toJSON(thing); //'{"plugin": "jquery-json", "version": 1.3}'
var name = $.evalJSON(encoded).plugin; //"jquery-json"
var version = $.evalJSON(encoded).version; // 1.3
答案 4 :(得分:1)
你看过jquery-json插件了吗?
答案 5 :(得分:0)
使用
jQuery.getJSON(url, data, callback)
或将“json”传递为type
parameter:
parameter:
jQuery.get( url, data, callback, type )
jQuery.get( url, data, callback, type )
*以防万一从ajax请求中提取“字符串”
答案 6 :(得分:-1)
虽然您可以使用eval命令,但您需要首先检查它是否安全。我用:
var data = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.
test(source.replace(/"(\\.|[^"\\])*"/g, '')))
&& eval('(' + source + ')');
这应该有用(它已经从原版调整了一下)。关键点是检查JSON字符串以防止函数和其他实际可执行代码偷偷摸摸。 (第一个正则表达式是重要的一点)。
那就是说,JSON插件非常好。