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

ind*_*vil 84 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 );

}
Run Code Online (Sandbox Code Playgroud)

在像这样的代码中,我试图创建JSON字符串只是为了玩.这是错误,但如果我把所有的名字,年龄,结婚在一行(第2行),它不会.有什么问题?

Akh*_*ran 229

我这样做的方式是:

   var obj = new Object();
   obj.name = "Raj";
   obj.age  = 32;
   obj.married = false;
   var jsonString= JSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)

我想这种方式可以减少错误的机会.

  • 这应该是答案,因为它优雅. (15认同)

bar*_*iir 74

Javascript不会处理多行的字符串.

你需要连接那些:

var obj = '{'
       +'"name" : "Raj",'
       +'"age"  : 32,'
       +'"married" : false'
       +'}';
Run Code Online (Sandbox Code Playgroud)

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

var obj = `{
           "name" : "Raj",
           "age" : 32,
           "married" : false,
           }`;
Run Code Online (Sandbox Code Playgroud)

  • 或者在文字的每一行的末尾加一个\. (11认同)
  • 当然:不要满足于这个答案,并期待其他人. (5认同)
  • 对于多行字符串,可以使用`(反引号字符。#1键左侧)来代替单引号或双引号。这些被称为“模板文字”。 (2认同)

Did*_*hys 61

函数JSON.stringify将把你的json对象变成一个字符串:

var jsonAsString = JSON.stringify(obj);
Run Code Online (Sandbox Code Playgroud)

如果浏览器没有实现它(IE6/IE7),请使用JSON2.js脚本.这是安全的,因为它使用本机实现(如果存在).


小智 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.
Run Code Online (Sandbox Code Playgroud)


Tim*_*lla 13

用途JSON.stringify:

> JSON.stringify({ asd: 'bla' });
'{"asd":"bla"}'
Run Code Online (Sandbox Code Playgroud)


SUL*_*A N 6

我想这种方式可以帮助你......

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);
Run Code Online (Sandbox Code Playgroud)