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

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

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

'{"name":"binchen"}'

当前回答

只使用JSON。Stringify来做这样的转换-但是记住,具有未定义值的字段将不会包含在json中

var j={“name”:“binchen”, “remember”:undefined, “age”: null }; var s=JSON.stringify(j); 控制台.log(s);

记住输出json中的“消失”字段

其他回答

如果你想获得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}'

我有问题与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会给你你的字符串表示(就像在这个线程中提到的其他时间),除非你有一个大对象,这也应该工作-只是确保你构建它来满足你的需要-我需要它有一个名称而不是数组

如果你使用的是AngularJS, 'json'过滤器可以做到:

<span>{{someObject | json}}</span>

转换STR => obj

const onePlusStr = '[{“品牌”:“oneplus”},{“模型”:“7 t”}]”;

const onePLusObj = JSON.parse(onePlusStr);

转换obj => STR

const onePLusObjToStr = JSON.stringify(onePlusStr);

JS中JSON解析的参考: JSON.parse():单击 JSON.stringify():单击

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

第二个参数是replacer。它可以用作过滤器,你可以过滤掉特定的键值时,字符串化。如果设置为空,它将返回所有键值对