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

如何在JavaScript中创建JSON字符串?,javascript,json,Javascript,Json,在类似这样的代码中,我尝试创建JSON字符串只是为了玩。这是一个错误,但如果我把所有的名字、年龄、婚姻都放在一行(第2行),就不会了。有什么问题吗?使用JSON.stringify: window.onload = function(){ var obj = '{ "name" : "Raj", "age" : 32, "married" : false }'; var val =

在类似这样的代码中,我尝试创建JSON字符串只是为了玩。这是一个错误,但如果我把所有的名字、年龄、婚姻都放在一行(第2行),就不会了。有什么问题吗?

使用
JSON.stringify

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字符串中不能有换行符。您必须将其全部设置为一行:
{“key”:“val”,“key2”:“val2”,等等……}


但不要自己生成JSON字符串。有很多库可以为您实现这一点,其中最大的库是。

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

有关创建JSON的最佳方法,请参见此处:

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

Javascript不处理多行上的字符串

您将需要连接以下各项:

> JSON.stringify({ asd: 'bla' });
'{"asd":"bla"}'
您还可以在ES6及更高版本中使用模板文本:()


函数JSON.stringify将把JSON对象转换为字符串:

var obj = `{
           "name" : "Raj",
           "age" : 32,
           "married" : false,
           }`;
如果浏览器没有实现它(IE6/IE7),请使用脚本。它是安全的,因为它使用本机实现(如果存在)。

我这样做的方式是:

var jsonAsString = JSON.stringify(obj);

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

我认为这种方法有助于你

   var obj = new Object();
   obj.name = "Raj";
   obj.age  = 32;
   obj.married = false;
   var jsonString= JSON.stringify(obj);
var name=[];
var年龄=[];
name.push('sulfikar');
年龄。推挤('24');
var ent={};

对于(var i=0;i这可能非常简单

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);

看到这个答案,JSON可以有换行符,但JavaScript字符串文字语法不能。是的,在字符串内部,但不是在键/值对之间。我认为您混淆了JavaScript字符串文字语法(不能包含未换行的换行符)和JSON标记。JSON标记肯定可以包含换行符……粘贴代码在您的问题中,输入(当然没有等…)。单击“验证”后,您将看到它在漂亮打印时实际上插入了换行符。或者在文本中的每行末尾添加\号。对于多行字符串,您可以使用`(在#1键左侧的回勾字符)。这些被称为“模板文字”。明确地说:不要满足于这个答案,看看其他答案。模板文字是ECMA脚本2015标准。这个问题和答案已经从2012年开始。但我会在中编辑:)真的吗?从头开始的字符串连接是构建JSON的最佳方式?我认为另一个答案应该是公认的答案。还要看看你是否需要支持较旧的浏览器。是的,这里有一个指向他的GitHub项目列表的链接:@nepsdotin Douglas at SO is not Douglas Crockford,“to his GitHub”啊,错过了,不,我不是Crockford!如果您想给树赋予深度,代码会是什么样子?我想给name.firstname和name.lastname取个名字。我需要将name定义为var吗?
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);
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.