[英]How to convert array to proper JSON?
我有这样的数组
product[0]['product_id']
product[0]['name']
....
product[1]['product_id']
product[1]['name']
...
当我使用JSON.stringify()
,我收到以下输出
{"0":{"product_id":"1","name":"ABC"},"1":{"product_id":"1","name":"ABC"},...}
但是,这不是我想要实现的,因为它不能保存数组。 相反,我希望JSON输出看起来像
[{"product_id":"1","name":"ABC"},{"product_id":"1","name":"ABC"},..]
我怎样才能做到这一点?
您需要确保product
是数组而不是常规对象。 当我执行以下操作时
var product = []; // Array
product[0] = {product_id: 1, name: "name1"};
product[1] = {product_id: 2, name: "name2"};
然后JSON.stringify(product)
产生
"[{"product_id":1,"name":"name1"},{"product_id":2,"name":"name2"}]"
这是您想要实现的。
我怀疑在您的情况下product
是一个普通对象,这意味着product[0]
访问该对象上名为0
的属性,而不是数组中的第一个元素。 为了说明这一点,请考虑以下片段
var product = {}; // Plain JS object
product[0] = {product_id: 1, name: "name1"};
product[1] = {product_id: 2, name: "name2"};
在这种情况下,当我运行JSON.stringify(product)
时,它将导致您得到输出
"{"0":{"product_id":1,"name":"name1"},"1":{"product_id":2,"name":"name2"}}"
如果您仍然遇到问题,则可能值得尝试此问题中提到的建议,该建议可以归结为添加
delete Array.prototype.toJSON;
在脚本的开头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.