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

dxpyg8gm  于 2023-05-19  发布在  Java
关注(0)|答案(8)|浏览(172)
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行),它不会。有什么问题吗?

zvms9eto

zvms9eto1#

我的做法是:

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

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

gupuwyp2

gupuwyp22#

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

查看创建JSON的最佳方法:https://stackoverflow.com/a/13488998/1127761

阅读此答案,了解为什么上面的代码示例不起作用。
Javascript不处理多行字符串。
您需要将它们连接起来:

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

你也可以在ES6及更高版本中使用模板文字:(See here for the documentation

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

2w3kk1z53#

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

var jsonAsString = JSON.stringify(obj);

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

mwg9r5ms

mwg9r5ms4#

这可以是相当容易和简单的

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.
wlwcrazw

wlwcrazw5#

使用JSON.stringify

> JSON.stringify({ asd: 'bla' });
'{"asd":"bla"}'
0sgqnhkj

0sgqnhkj6#

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

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

sr4lhrrt7#

@Akhil的答案对我来说仍然是最好的。一个用户询问如何处理嵌套属性,我想像这样扩展解决方案:

var obj = new Object();
var nameobj = new Object();
nameobj.firstname = "Raj";
nameobj.lastname = "whatever";
obj.name = nameobj;
obj.age  = 32;
obj.married = false;
var jsonString= JSON.stringify(obj);
uurity8g

uurity8g8#

json字符串中不能有换行符。你得写一句话{"key":"val","key2":"val2",etc....} .
但是不要自己生成JSON字符串。有很多库可以为您做这件事,其中最大的是jquery

相关问题