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

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

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

'{"name":"binchen"}'

当前回答

使用本机函数JSON.stringify()

let userJson = {
name : 'Richard'
}
let userJsonString = JSON.stringify(userJson)

其他回答

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

JSON。Stringify (value, replace, space) value任何JavaScript值,通常是一个对象或数组。 替换一个可选参数,该参数决定对象的方式 对象的值是字符串化的。它可以是 函数或字符串数组。 空格指定缩进的可选参数 嵌套结构。如果省略它,文本将 打包时没有额外的空格。如果是数字, 它将指定每次缩进的空格数 的水平。如果它是一个字符串(如“\t”或“ ”), 它包含用于在每一层缩进的字符。

这是自定义的,直到我们使用stringify方法

var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
   json +=",";
}
json+="}";
document.write(json);

输出

{"name":"binchen","class":"awesome"}

住http://jsfiddle.net/mailmerohit5/y78zum6v/

沃金……使用方便

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

谢谢

在angularJS

angular.toJson(obj, pretty);

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

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

(默认值:2)

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

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

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