[javascript] 将JS对象转换为JSON字符串



Answers

使用JSON.stringify()或大多数现代浏览器中的本机。

   JSON.stringify(value, replacer, space)
        value       any JavaScript value, usually an object or array.

       replacer    an optional parameter that determines how object
                    values are stringified for objects. It can be a
                    function or an array of strings.

       space       an optional parameter that specifies the indentation
                    of nested structures. If it is omitted, the text will
                    be packed without extra whitespace. If it is a number,
                    it will specify the number of spaces to indent at each
                    level. If it is a string (such as '\t' or ' '),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.
Question

如果我用JS定义了一个对象:

var j={"name":"binchen"};

我如何将对象转换为JSON? 输出字符串应该是:

'{"name":"binchen"}'



你可以使用JSON.stringify()函数来做到这一点。




沃金...易于使用

$("form").submit(function(evt){
  evt.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvert = JSON.stringify(formData);  // Convert to json
});

谢谢




所有你需要的是在下面添加这个代码
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'




我遇到了stringify耗尽内存的问题,其他解决方案似乎没有工作(至少我无法让他们工作),这是当我偶然发现这个线程。 感谢Rohit Kumar,我只是遍历我的非常大的JSON对象来阻止它崩溃

var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
    MyObjectStringify += JSON.stringify(j[x]);
    count++;
    if (count < last)
        MyObjectStringify += ",";
}
MyObjectStringify += "]}";

MyObjectStringify会给你你的字符串表示(就像在这个线程中其他时候提到的一样),除非你有一个大的对象,这也应该工作 - 只要确保你构建它以满足你的需求 - 我需要它有一个名称而不是数组




JSON.stringify({"key":"value"});



JSON.stringify(j,null,4)会给你美化的JSON,以防你需要美化




您可以使用JSON.stringify()方法将JSON对象转换为String。

var j={"name":"binchen"};
JSON.stringify(j)

对于逆向过程,可以使用JSON.parse()方法将JSON字符串转换为JSON对象。




在angularJS中

angular.toJson(obj, pretty);

obj:要序列化为JSON的输入。

漂亮(可选):
如果设置为true,则JSON输出将包含换行符和空格。 如果设置为整数,那么JSON输出将包含每个缩进多少个空格。

(默认:2)




如果您想以字符串格式获取json属性值,请使用以下方法

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'



const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);




Links