window.onload = function(){
var obj = '{
"name" : "Raj",
"age" : 32,
"married" : false
}';
var val = eval('(' + obj + ')');
alert( "name : " + val.name + "\n" +
"age : " + val.age + "\n" +
"married : " + val.married );
}
在类似这样的代码中,我试图创建JSON字符串只是为了玩。这是抛出错误,但如果我把所有的名字,年龄,已婚在一个单行(第2行),它不会。有什么问题吗?
8条答案
按热度按时间zvms9eto1#
我的做法是:
我想这种方法可以减少出错的机会。
gupuwyp22#
免责声明:这不是在JavaScript中创建JSON的最佳方法。这个答案主要解决了“问题是什么”的问题。或者为什么上面的代码不起作用-这是JavaScript中错误的字符串连接尝试,并且没有解决为什么字符串连接是一种非常糟糕的创建JSON字符串的方法。
查看创建JSON的最佳方法:https://stackoverflow.com/a/13488998/1127761
阅读此答案,了解为什么上面的代码示例不起作用。
Javascript不处理多行字符串。
您需要将它们连接起来:
你也可以在ES6及更高版本中使用模板文字:(See here for the documentation)
2w3kk1z53#
函数JSON.stringify将把json对象转换为字符串:
如果浏览器没有实现它(IE6/IE7),请使用JSON2.js脚本。它是安全的,因为它使用本机实现(如果存在)。
mwg9r5ms4#
这可以是相当容易和简单的
wlwcrazw5#
使用
JSON.stringify
:0sgqnhkj6#
我想这种方式可以帮助你。。
sr4lhrrt7#
@Akhil的答案对我来说仍然是最好的。一个用户询问如何处理嵌套属性,我想像这样扩展解决方案:
uurity8g8#
json字符串中不能有换行符。你得写一句话
{"key":"val","key2":"val2",etc....}
.但是不要自己生成JSON字符串。有很多库可以为您做这件事,其中最大的是jquery。