我有这个JSON.stringify(数组)结果:[“id:1x,价格:150”,“id:2x,价格:200”]我必须以类似于此的json格式转换它(它将被发送到PHP): [{ “ID”: “1X” “价格”:150 }, { “ID”: “2X”, “价格”:200 }]
请帮忙。
答案 0 :(得分:2)
您可以在使用JSON.stringify
之前转换数据结构,例如,您可以将数据转换为对象列表,如下所示:
var strItems = ["id:1x,price:150", "id:2x,price:200"];
var objItems = [];
for (var i = 0; i < strItems.length; i++) {
var pairs = strItems[i].split(",");
objItems.push({
id: pairs[0].split(':')[1],
price: parseInt(pairs[1].split(':')[1])
});
}
在致电JSON.stringify
以获得您之后的结果之前:
var json = JSON.stringify(objItems);
console.log(json);
答案 1 :(得分:0)
JSON.stringify(array)仅在图层上执行,但您可以使用JVE999在this post上编写的此函数更改stringify函数以适用于多个图层:
(function(){
// Convert array to object
var convArrToObj = function(array){
var thisEleObj = new Object();
if(typeof array == "object"){
for(var i in array){
var thisEle = convArrToObj(array[i]);
thisEleObj[i] = thisEle;
}
}else {
thisEleObj = array;
}
return thisEleObj;
};
var oldJSONStringify = JSON.stringify;
JSON.stringify = function(input){
if(oldJSONStringify(input) == '[]')
return oldJSONStringify(convArrToObj(input));
else
return oldJSONStringify(input);
};
})();
一旦声明了这一点,就可以调用JSON.stringify(array)