提问人:Bin Chen 提问时间:11/12/2010 最后编辑:Kamil KiełczewskiBin Chen 更新时间:4/16/2023 访问量:1765874
将 JS 文件转换为 JSON 字符串
Convert JS object to JSON string
问:
如果我在 JS 中定义了一个对象:
var j={"name":"binchen"};
如何将对象转换为 JSON?输出字符串应为:
'{"name":"binchen"}'
答:
在 json2 .js 中找到或在大多数现代浏览器中原生。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.
评论
replacer
space
null
replacer
查看托马斯·弗兰克 (Thomas Frank) 的更新/更好方式:
2008 年 5 月 17 日更新:小型消毒剂 添加到 toObject-method 中。现在 toObject() 不会 eval() 字符串 如果发现任何恶意代码 它。为了提高安全性:不要设置 includeFunctions 标志设置为 true。
JSON 概念之父 Douglas Crockford 为 JavaScript 编写了最早的字符串器之一。后来,Trim Path 的 Steve Yen 写了一个不错的改进版本,我已经使用了一段时间。这是我对史蒂夫版本的更改,我想与你分享。基本上,它们源于我制作字符串器的愿望:
- 处理和还原循环引用
- 包括函数/方法的 JavaScript 代码(作为选项)
- 如果需要,从 Object.prototype 中排除对象成员。
所有当前的浏览器都内置了原生 JSON 支持。因此,只要您不处理像 IE6/7 这样的史前浏览器,您就可以像这样轻松地做到这一点:
var j = {
"name": "binchen"
};
console.log(JSON.stringify(j));
评论
var formattedJSON = JSON.stringify(j, null, 2);
如果你使用的是 AngularJS,'json' 过滤器应该会这样做:
<span>{{someObject | json}}</span>
为此定义了一个自定义,直到我们从 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 对象转换为 String。
var j={"name":"binchen"};
JSON.stringify(j)
对于反向处理,您可以使用 JSON.parse() 方法将 JSON String 转换为 JSON 对象。
评论
在 angularJS 中
angular.toJson(obj, pretty);
OBJ: 要序列化为 JSON 的输入。
pretty(可选):
如果设置为 true,则 JSON 输出将包含换行符和空格。如果设置为整数,则 JSON 输出将包含每个缩进的空格数。
(默认值:2)
我遇到了字符串耗尽内存的问题,其他解决方案似乎不起作用(至少我无法让它们工作),这就是我偶然发现这个线程的时候。多亏了 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" }
/** convert json to string */
const jsonString = JSON.stringify(j)
console.log(jsonString) // {"name":"binchen"}
JSON.stringify(j, null, 4)
会给你美化的JSON,以防你也需要美化
第二个参数是 replacer。它可以用作过滤器,您可以在字符串化时过滤掉某些键值。如果设置为 null,它将返回所有键值对
沃金。。。简单易用
$("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 文本存储在字符串中。
转换是 Object 到 String
JSON.parse
将 JSON 文本字符串转换为 Javascript 对象。
转换是 String 到 Object
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(值[, 替换器[, 空格]])
让我们看一些简单的例子。请注意,整个字符串得到 双引号,如果出现以下情况,则字符串中的所有数据都会转义 需要。
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 中JSON.stringify
undefined
var j={"name":"binchen", "remember":undefined, "age": null };
var s=JSON.stringify(j);
console.log(s);
字段从输出 json 中“消失”remember
评论
用JSON.stringify(param1, param2, param3);
什么:-
param1 --> 要转换为 JSON 的值
param2 -->函数以您自己的方式进行字符串化。或者,它充当一个白名单,需要将对象包含在最终 JSON 中。
param3 --> 一个 Number 数据类型,指示要添加的空格数。最多允许 10 个。
转换 str => obj
const onePlusStr = '[{“品牌”:“一加”},{“model”:“7T”}]';
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 = {name: "Martin", age: 30, country: "United States"};
// Converting JS object to JSON string
var json = JSON.stringify(obj);
console.log(json);
你可以使用 JSON.stringify() 来做到这一点
评论
使用本机函数 JSON.stringify()
let userJson = {
name : 'Richard'
}
let userJsonString = JSON.stringify(userJson)
下一个:将对象转换为字符串
评论
JSON.stringify()
是你要找的方法。