如何在JavaScript中创建JSON字符串?

时间:2012-01-22 18:57:27

标签: javascript json

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 个答案:

答案 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)

答案 7 :(得分:-5)

json字符串不能包含换行符。你必须把它全部放在一行:{"key":"val","key2":"val2",etc....}

但是不要自己生成JSON字符串。有很多库可以帮到你,其中最大的是jquery