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

2022-08-30 05:36:51
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行)中,它就不会。问题出在哪里?


答案 1

我的做法是:

   var obj = new Object();
   obj.name = "Raj";
   obj.age  = 32;
   obj.married = false;
   var jsonString= JSON.stringify(obj);

我想这种方式可以减少出错的机会。


答案 2

免责声明:这不是如何在JavaScript本身中创建JSON的最佳方法的答案。这个答案主要解决了“问题是什么?”或为什么上面的代码不起作用的问题 - 这是JavaScript中错误的字符串串联尝试,并没有解决为什么字符串串联首先是创建JSON字符串的非常糟糕的方法。

有关创建 JSON 的最佳方式,请参阅此处:https://stackoverflow.com/a/13488998/1127761

阅读此答案,了解上述代码示例不起作用的原因。

Javascript 不处理多行的字符串。

您需要连接这些:

var obj = '{'
       +'"name" : "Raj",'
       +'"age"  : 32,'
       +'"married" : false'
       +'}';

您还可以在 ES6 及更高版本中使用模板文本:(有关文档,请参阅此处))

var obj = `{
           "name" : "Raj",
           "age" : 32,
           "married" : false,
           }`;