使用stringify将javascript对象转换为JSON
我已经阅读了前面的答案,建议使用JSON.stringify,但它并没有像我预期的那样工作。。情况如下:使用stringify将javascript对象转换为JSON,javascript,node.js,json,Javascript,Node.js,Json,我已经阅读了前面的答案,建议使用JSON.stringify,但它并没有像我预期的那样工作。。情况如下: [ { category = 'Telephone & Accessories'; in_stock = 'True'; description = '-'; }, { category = 'Telephone & Accessories'; in_stock = 'False'; description = '-'; } ] 我使用的是JSON.st
[
{
category = 'Telephone & Accessories';
in_stock = 'True';
description = '-';
},
{
category = 'Telephone & Accessories';
in_stock = 'False';
description = '-';
}
]
我使用的是JSON.stringify(),但它返回的数组是:
[
'{
"category" = "Telephone & Accessories";
"in_stock" = "True";
"description" = "-";
}',
'{
"category" = "Telephone & Accessories";
"in_stock" = "False";
"description" = "-";
}'
]
这不是我所期望的。。我不希望整个JSON对象都用引号括起来
有人面临同样的问题吗
预期:
[
{
"category" = "Telephone & Accessories";
"in_stock" = "True";
"description" = "-";
},
{
"category" = "Telephone & Accessories";
"in_stock" = "False";
"description" = "-";
}
]
我认为你的问题在于这里的语法。您的Javascript对象中有一些错误。 这就是它应该是什么样子:
const data = [
{
category: 'Telephone & Accessories',
in_stock: true,
description: '-'
},
{
category: 'Telephone & Accessories',
in_stock: false,
description: '-'
}
]
请注意区别:
- Javascript对象中的属性由逗号(,)而不是分号(;)分隔
- 键值对由Key:value定义,而不是Key=value。(冒号:而不是等号=)
- true和false(作为布尔值)不能用引号括起来
您能解释并展示更多的实现吗?您得到的结果似乎来自
map
或reduce
函数
// I changed your value to be a valid json object ('=' -> ':') and (';' -> ',')
var data = [
{
category : 'Telephone & Accessories',
in_stock : 'True',
description : '-'
},
{
category : 'Telephone & Accessories',
in_stock : 'False',
description : '-'
}
];
data.map(JSON.stringify); // is same result as what you get
如果将数据
直接传递到JSON.stringify
,则应获得有效的JSON字符串
// data was declare above
var jsonString = JSON.stringify(data)
// jsonString is a valid JSON string
问题可能是数组的
映射
函数或链接函数的行为。stringify就是这样做的,它将其转换为字符串,如引号所示。你到底想要什么?!这甚至不是语法上有效的Javascriptwith@jonrsharpe:但是它不是一个有效的JSON,不是吗?我正在尝试将结果上传为json文件。由于=
,这些东西都不是有效的JS/json。请举例说明你的实际问题是什么。但顾名思义,JSON.stringify会创建一个与其输入相对应的有效JSON字符串。