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行),它不会。问题是什么?
答案 0 :(得分:205)
我这样做的方式是:
var obj = new Object();
obj.name = "Raj";
obj.age = 32;
obj.married = false;
var jsonString= JSON.stringify(obj);
我想这种方法可以减少错误的机会。
答案 1 :(得分:66)
Javascript不会处理多行的字符串。
您需要连接这些:
var obj = '{'
+'"name" : "Raj",'
+'"age" : 32,'
+'"married" : false'
+'}';
您还可以在ES6及更高版本中使用模板文字:(See here for the documentation)
var obj = `{
"name" : "Raj",
"age" : 32,
"married" : false,
}`;
答案 2 :(得分:59)
函数JSON.stringify会将您的json对象转换为字符串:
var jsonAsString = JSON.stringify(obj);
如果浏览器未实现它(IE6 / IE7),请使用JSON2.js脚本。它是安全的,因为它使用本机实现(如果存在)。
答案 3 :(得分:20)
这可以非常简单
var obj = new Object();
obj.name = "Raj";
obj.age = 32;
obj.married = false;
//convert object to json string
var string = JSON.stringify(obj);
//convert string to Json Object
console.log(JSON.parse(string)); // this is your requirement.
答案 4 :(得分:13)
使用JSON.stringify
:
> JSON.stringify({ asd: 'bla' });
'{"asd":"bla"}'
答案 5 :(得分:5)
我认为这种方式可以帮助你...
var name=[];
var age=[];
name.push('sulfikar');
age.push('24');
var ent={};
for(var i=0;i<name.length;i++)
{
ent.name=name[i];
ent.age=age[i];
}
JSON.Stringify(ent);
答案 6 :(得分:1)
Crockford有一个“官方”JSON实现http://www.json.org/js.html:https://github.com/douglascrockford/JSON-js
答案 7 :(得分:-5)
json字符串不能包含换行符。你必须把它全部放在一行:{"key":"val","key2":"val2",etc....}
。
但是不要自己生成JSON字符串。有很多库可以帮到你,其中最大的是jquery。