23

我想以编程方式构建一个 json 字符串。最终产品应该是这样的:

var myParamsJson = {first_name: "Bob", last_name: "Smith" };

但是我想一次做一个参数。如果它是一个数组,我会做类似的事情:

var myParamsArray = [];
myParamsArray["first_name"] = "Bob";
myParamsArray["last_name"] = "Smith";

我什至不介意构建该数组然后转换为 json。有任何想法吗?

4

2 回答 2

53

你可以对对象做类似的事情:

var myObj = {};
myObj["first_name"] = "Bob";
myObj["last_name"] = "Smith";

然后您可以使用该JSON.stringify方法将该对象转换为 JSON 字符串。

var json = JSON.stringify(myObj);
alert(json);

将会呈现:

{"first_name":"Bob","last_name":"Smith"}

这种方法原生内置于所有现代浏览器中(即使 IE8 也支持它,即使 IE8 离现代浏览器还很远)。如果您需要支持一些旧版浏览器,您可以包含json2.js脚本。

于 2012-05-11T23:14:10.050 回答
13

创建一个普通对象:

var o = {
    first_name: 'Robert',
    last_name: 'Dougan'
};

然后使用JSON.stringify使其成为字符串:

var string = JSON.stringify(o); //"{"first_name":"Robert","last_name":"Dougan"}"
于 2012-05-11T23:13:18.893 回答