将JS对象转换为JSON字符串

如果我用以下方法在JS中定义了一个对象:

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

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

'{"name":"binchen"}'
乐乐2020/03/09 22:09:35

用这个,

var j={"name":"binchen"};
 var myJSON = JSON.stringify(j);
WT2020/03/09 22:09:35

采用 JSON.stringify(param1, param2, param3);

什么是: -

param1->值转换为JSON

param2->函数以您自己的方式进行字符串化。另外,它还可以作为白名单,最终JSON中需要包含这些对象。

param3-> Number数据类型,指示要添加的空格数。允许的上限为10。

逆天猿理查德2020/03/09 22:09:35

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

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

要将此字符串转换回json对象,可以使用JSON.parse()方法。

A小卤蛋Pro2020/03/09 22:09:35

只是JSON.stringify用来进行这种转换-但是请记住,具有undefined值的字段不会包含在json中

var j={"name":"binchen", "remember":undefined, "age": null };

var s=JSON.stringify(j);

console.log(s);

remember输出json 字段“消失”

飞云Pro2020/03/09 22:09:35

我遇到了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会为您提供字符串表示形式(就像在该线程中其他时候所提到的那样),除非您有一个大对象,这也应该起作用- 只需确保将其构建为适合您的需求 -我需要它的名称比数组大

蛋蛋飞云2020/03/09 22:09:35

易用...易于使用

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

谢谢

逆天米亚2020/03/09 22:09:35

您可以像这样使用本机stringify函数

const j={ "name": "binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}

理查德路易2020/03/09 22:09:35

JSON.stringify 将Javascript对象转换为JSON文本并将该JSON文本存储在字符串中。

转换是对象到字符串

JSON.parse 将JSON文本字符串转换为Javascript对象。

转换是从字符串到对象

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

使其可以使用以下JSON字符串。

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

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

有关更多信息,您可以参考下面的链接。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

古一番长小小2020/03/09 22:09:35

如果您使用的是AngularJS,则“ json”过滤器应执行以下操作:

<span>{{someObject | json}}</span>
神奇乐猪猪2020/03/09 22:09:35

查看Thomas Frank更新/更好的方式:

2008年5月17日更新:小型消毒剂已添加到toObject方法中。现在,如果toObject()在字符串中发现任何恶意代码,就不会再对其进行eval()处理。为了进一步提高安全性:请不要将includeFunctions标志设置为true。

JSON概念的父亲Douglas Crockford编写了JavaScript的首批字符串化器之一。后来Trim Path的Steve Yen写了一个不错的改进版本,我使用了一段时间。我想与您分享这是我对史蒂夫版本的更改。基本上,它们源于我希望做成串器的愿望:

  • 处理和恢复循环引用
  • 包括功能/方法的JavaScript代码(作为选项)
  • 如果需要,从Object.prototype中排除对象成员。
理查德十三Davaid2020/03/09 22:09:35

JSON.stringify(j, null, 4) 在需要美化的情况下也会为您提供美化的JSON

第二个参数是replacer。它可用作过滤器,您可以在进行字符串过滤时过滤掉某些键值。如果设置为null,它将返回所有键值对

猴子小哥2020/03/09 22:09:35

在angularJS中

angular.toJson(obj, pretty);

obj:输入要序列化为JSON。

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

(默认值:2)

Tony伽罗Sam2020/03/09 22:09:35

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

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

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