Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JS对象转换为JSON字符串_Javascript_Json_String_Object - Fatal编程技术网

Javascript 将JS对象转换为JSON字符串

Javascript 将JS对象转换为JSON字符串,javascript,json,string,object,Javascript,Json,String,Object,如果我在JS中定义了一个对象: var j={"name":"binchen"}; 如何将对象转换为JSON?输出字符串应为: '{"name":"binchen"}' 使用JSON.stringify可以在大多数现代浏览器中找到,也可以在大多数现代浏览器中找到 查看Thomas Frank的更新/更好的方式: 更新日期:2008年5月17日:小型消毒剂 添加到toObject方法中。现在 toObject不会求值字符串 如果在中发现任何恶意代码 它。为了更安全:不要设置 includeFu

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

var j={"name":"binchen"};
如何将对象转换为JSON?输出字符串应为:

'{"name":"binchen"}'
使用JSON.stringify可以在大多数现代浏览器中找到,也可以在大多数现代浏览器中找到


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

更新日期:2008年5月17日:小型消毒剂 添加到toObject方法中。现在 toObject不会求值字符串 如果在中发现任何恶意代码 它。为了更安全:不要设置 includeFunctions标志为true

JSON概念之父道格拉斯·克罗克福德(Douglas Crockford)为JavaScript编写了第一批stringifier。后来,TrimPath的SteveYen写了一个很好的改进版本,我已经使用了一段时间。这是我对史蒂夫版本的修改,我想与大家分享。基本上,它们源于我制作架线机的愿望:

处理和恢复循环引用 包括函数/方法的JavaScript代码作为选项 如果需要,从object.prototype中排除对象成员。
所有当前浏览器都内置了本机JSON支持。因此,只要您不是在处理像IE6/7这样的史前浏览器,您就可以轻松地做到这一点:

变量j={ 姓名:宾晨 };
console.logJSON.stringifyj 如果您有一个json字符串,但它没有用[]包装,那么请先包装它

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);


如果您使用的是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);

LIVE

您可以使用JSON.stringify方法将JSON对象转换为字符串

var j={"name":"binchen"};
JSON.stringify(j)
var j={"name":"hello world"};
JSON.stringify(j);
对于反向过程,您可以使用JSON.parse方法将JSON字符串转换为JSON对象。

在angularJS中

angular.toJson(obj, pretty);
obj: 要序列化为JSON的输入

可选项: 如果设置为true,JSON输出将包含换行符和空格。如果设置为整数,JSON输出将在每个缩进中包含如此多的空格


默认设置:2

我遇到了stringify内存不足的问题,其他解决方案似乎不起作用,至少我无法让它们工作,这是我偶然发现这个线程的时候。多亏了我迭代了我非常大的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函数

常量j={name:binchen} /**将json转换为字符串*/ const jsonString=JSON.stringifyj console.logjsonString/{name:binchen}JSON.stringifyj,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}'
stringify将Javascript对象转换为JSON文本,并将该JSON文本存储在字符串中

将对象转换为字符串

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

转换是字符串到对象的转换

要使其成为JSON字符串,可以使用以下命令

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

JSON.stringify({"name":"binchen"});
有关更多信息,请参阅下面的链接


要在Node JS中进行调试,可以使用util.inspect。使用循环引用时效果更好

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));

现有的JSON替换对我来说太多了,所以我编写了自己的函数。这似乎是可行的,但我可能错过了几个在我的项目中没有出现的边缘案例。并且可能不适用于任何预先存在的对象,仅适用于自制数据

函数simplejsonstringifyobj{ 变量prop,str,val, isArray=阵列的obj实例; 如果对象的类型!==对象 返回false; str=isArray?[:{; 函数引号str{ 如果str的类型!==字符串 str=str.toString; //当实际变量是一个数字时,它返回引号之间的数字 //返回str.match/^\.\$/?str:''+str.replace//g'\\'+''; //现在,我们正在验证是否是一个数字,如果是,我们将删除引号 str=str.match/^\.\$/?str:''+str.replace//g'\\'+''; 如果isNaN str.replace/^[]/,.replace/[]$/, 返回str; 其他的 返回str.replace/^[]/,.replace/[]$/; } 用于obj中的支柱{ 如果!伊萨雷{ //报价属性 str+=引号prop+:; } //报价值 val=对象[prop]; str+=typeof val==object?simpleJSONstringify val:quote val; str+=; } //移除最后一个冒号,关闭支架 str=str.substr 0,str.length-2+isArray?]:}; 返回str; } 将对象转换为字符串的简单语法 是

完整语法为: JSON.stringifyvalue[,replacer[,space]]

让我们看一些简单的例子。请注意,整个字符串 双引号和字符串中的所有数据在 需要

用这个,

var j={"name":"binchen"};
 var myJSON = JSON.stringify(j);
只需使用JSON.stringify进行这种转换,但是请记住,具有未定义值的字段不会包含在JSON中

var j={name:binchen,记住:未定义,年龄:null}; var s=JSON.stringifyj;
控制台日志 您可以使用JSON.stringify方法将JSON对象转换为字符串

var j={"name":"binchen"};
JSON.stringify(j)
var j={"name":"hello world"};
JSON.stringify(j);
要将此字符串转换回json对象,可以使用json.parse方法。

使用json.stringifyparam1、param2、param3

什么是:-

param1->要转换为JSON的值

param2->函数以您自己的方式进行字符串化。或者,它用作最终JSON中需要包含哪些对象的白名单

param3->数字数据类型,指示要添加的空白的数量。允许的最大值为10。

convert str=>obj

const-onePlusStr='[{brand:oneplus},{model:7T}'

const onePLusObj=JSON.parseonePlusStr

convert obj=>str

const oneplusobjtost=JSON.stringifyonePlusStr


JSON解析在JS中的引用: JSON.parse:
JSON.stringify:

非常易于使用的方法,但由于可能存在兼容性问题,请勿在发行版中使用它

非常适合您进行测试

Object.prototype.toSource()

//Usage:
obj.toSource();

使用stringify函数

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

var j_json = JSON.stringify(j);

console.log("j in json object format :", j_json);
快乐编码

使用JSON.stringify方法:

const stringified=JSON.stringify{}//传递要转换为字符串格式的对象 最流行的方式如下:

var obj={姓名:马丁,年龄:30岁,国家:美国}; //将JS对象转换为JSON字符串 var json=json.stringifyobj;

console.logjson 只需使用JSON.stringifyyour_variableName即可将JSON对象转换为字符串,如果要将字符串转换为对象,请使用JSON.parseyour_variableName

下载以获得JSON.stringifyj;在nodejs上工作因为node使用相同的引擎这个答案是在IE9发布前一年发布的,所以在撰写本文时IE8确实是一款现代浏览器,或者至少是最新的IE。JSON.stringify不会转换嵌套对象。如果您需要更可读的json字符串,您可以使用空间参数,如var formattedJSON=json.stringifyj,null,2;OP正试图走另一条路。您的问题回答了相反的情况,即他有一个JSON字符串,并希望将其作为一个对象。。您应该使用JSON.stringfy函数在自定义代码非常不完整的字符串中不转义带有引号的字符串,如:a\。不支持数组、对象和特殊字符。示例:json{arr:[1,2,3],obj:{a:b},key\with\\special}chars:value}将输出{arr:1,2,3,obj:[object object],keywith\special}chars:value}这是错误的!当然,这段代码只是玩代码的一个例子。。我们应该始终使用stringify。。。JS已经为usJSON完成了这项工作。stringify是您正在寻找的方法。您必须第一次学习它。JSON.stringify也是复制对象的一种好方法,更清晰一点:replacer是可选的,因此如果您仍要使用空格arg,请将null作为replacer。如果您对使用此功能进行漂亮打印感兴趣,我发现这个答案也很有用:what is replacer?感谢您添加了反向过程。如果您能提供代码的简短解释,那就太好了。这并没有提供问题的答案。一旦你有足够的钱,你将能够;相反我已经编辑了我的答案,非常感谢你指出拉斐尔和乔尼。你刚刚救了我一天。我无法保存我的对象。有未定义值的字段将不包含在json中的键解决了我的问题!JSON:JSON.parse:JSON.stringify中对JSON解析的引用:
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"}"*/
var j={"name":"binchen"};
 var myJSON = JSON.stringify(j);
var j={"name":"hello world"};
JSON.stringify(j);
Object.prototype.toSource()

//Usage:
obj.toSource();
var j = {
"name":"binchen"
};

var j_json = JSON.stringify(j);

console.log("j in json object format :", j_json);