如果我在JS中定义了一个对象:
var j={"name":"binchen"};
如何将对象转换为JSON?输出字符串应该是:
'{"name":"binchen"}'
如果我在JS中定义了一个对象:
var j={"name":"binchen"};
如何将对象转换为JSON?输出字符串应该是:
'{"name":"binchen"}'
使用在json2.js中找到的JSON.stringify()或大多数现代浏览器中的本机。
JSON。Stringify (value, replace, space) value任何JavaScript值,通常是一个对象或数组。 替换一个可选参数,该参数决定对象的方式 对象的值是字符串化的。它可以是 函数或字符串数组。 空格指定缩进的可选参数 嵌套结构。如果省略它,文本将 打包时没有额外的空格。如果是数字, 它将指定每次缩进的空格数 的水平。如果它是一个字符串(如“\t”或“ ”), 它包含用于在每一层缩进的字符。
看看Thomas Frank更新的/更好的方法:
JSON stringify重访
2008年5月17日更新:小型消毒剂 添加到toobject -方法中。现在 toObject()不会eval()该字符串 如果它发现任何恶意代码 它。为了更安全:不要设置 将includeFunctions标志设为true。 JSON概念之父Douglas Crockford为JavaScript编写了最早的stringfier之一。后来Steve Yen在Trim Path写了一个很好的改进版本,我用了一段时间。我想和大家分享的是我对史蒂夫版本的修改。基本上他们源于我的愿望,使stringifier: 处理和恢复循环引用 包含函数/方法的JavaScript代码(作为一个选项) 排除object中的对象成员。原型(如果需要的话)。
当前所有浏览器都内置了原生JSON支持。所以只要你不是在处理像IE6/7这样的史前浏览器,你就可以很容易地做到这一点:
Var j = { “名称”:“binchen” }; console.log (JSON.stringify (j));
这是自定义的,直到我们使用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/
您可以使用JSON.stringify()方法将JSON对象转换为字符串。
var j={"name":"binchen"};
JSON.stringify(j)
对于反向处理,您可以使用JSON.parse()方法将JSON字符串转换为JSON对象。
在angularJS
angular.toJson(obj, pretty);
obj: 要序列化为JSON的输入。
(可选): 如果设置为true, JSON输出将包含换行符和空格。如果设置为整数,则JSON输出每个缩进将包含相同数量的空格。
(默认值:2)
我有问题与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会给你你的字符串表示(就像在这个线程中提到的其他时间),除非你有一个大对象,这也应该工作-只是确保你构建它来满足你的需要-我需要它有一个名称而不是数组
你可以像这样使用本地stringify函数
Const j={"name": "binchen"} 将json转换为字符串*/ const jsonString = JSON.stringify(j) console.log(jsonString) // {"name":"binchen"}
JSON。stringify(j, null, 4)会给你美化的JSON,以防你也需要美化
第二个参数是replacer。它可以用作过滤器,你可以过滤掉特定的键值时,字符串化。如果设置为空,它将返回所有键值对
沃金……使用方便
$("form").submit(function(evt){
evt.preventDefault();
var formData = $("form").serializeArray(); // Create array of object
var jsonConvert = JSON.stringify(formData); // Convert to 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}'
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
要在Node JS中进行调试,可以使用util.inspect()。使用循环引用效果更好。
var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));
现有的JSON替换对我来说太多了,所以我写了自己的函数。这似乎是可行的,但我可能错过了一些边缘情况(在我的项目中不会出现)。并且可能不适用于任何已存在的对象,只适用于自制数据。
function simpleJSONstringify (obj) {
var prop, str, val,
isArray = obj instanceof Array;
if (typeof obj !== "object")
return false;
str = isArray ? "[" : "{";
function quote (str) {
if (typeof str !== "string")
str = str.toString ();
// When the actual variable was a number, it was returning a number between quotation marks
// return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"';
// Now, we are verifing if is a number and, if it is, we remove the quotation marks
str = str.match (/^\".*\"$/) ? str : '"' + str.replace (/"/g, '\\"') + '"';
if (isNaN (str.replace (/^["]/, '').replace (/["]$/, '')))
return str;
else
return str.replace (/^["]/, '').replace (/["]$/, '');
}
for (prop in obj) {
if (!isArray) {
// quote property
str += quote (prop) + ": ";
}
// quote value
val = obj [prop];
str += typeof val === "object" ? simpleJSONstringify (val) : quote (val);
str += ", ";
}
// Remove last colon, close bracket
str = str.substr (0, str.length - 2) + ( isArray ? "]" : "}" );
return str;
}
So in order to convert a js object to JSON String:
将对象转换为字符串的简单语法是
JSON.stringify(value)
完整的语法是: JSON。Stringify (value[, replace [, space]])
让我们看一些简单的例子。注意,整个字符串得到 双引号,字符串中的所有数据都会转义 需要的。
JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* "
{"foo":true,"baz":false}" */
const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1",
"property2":"value2"}"*/
只使用JSON。Stringify来做这样的转换-但是记住,具有未定义值的字段将不会包含在json中
var j={“name”:“binchen”, “remember”:undefined, “age”: null }; var s=JSON.stringify(j); 控制台.log(s);
记住输出json中的“消失”字段
使用JSON。stringify(param1, param2, param3);
什么是:-
param1——>值转换为JSON
Param2—>函数以自己的方式进行字符串化。或者,它可以作为一个白列表,其中的对象需要包含在最终的JSON中。
param3——>数字数据类型,表示要添加的空白空间的数量。最多允许添加10个空白空间。
转换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():单击
非常容易使用的方法,但不要在发布版中使用它(因为可能存在兼容性问题)。
非常适合在您这边进行测试。
Object.prototype.toSource()
//Usage:
obj.toSource();
最流行的方式如下:
var obj ={名字:“马丁”,年龄:30岁,国家:“美国”}; //将JS对象转换为JSON字符串 var json = json .stringify(obj); console.log (json);
使用本机函数JSON.stringify()
let userJson = {
name : 'Richard'
}
let userJsonString = JSON.stringify(userJson)