我在下面的代码中遇到了问题。目标是创建一个JSON字符串。
问题:obj内容只是循环的最后一个值。 (当我阅读我的代码时,似乎是合法的,但我找不到解决方案)。我是否应该使用obj?否则,它会起作用。
结果如下:
{
"name": "foo",
"value": 0,
"coord": [
{
"lat": 30,
"lng": 10
}//,//currently i haven't other information from here.
{
"lat": 40,
"lng": 0
},
{
"lat": 20,
"lng": 12
}//to here
]
}
以下是代码:
var value = Zones[zob].value;
var tmp = Zones[zob].zone.getPath().getArray();
var coord = {};
var obj = {};
for(i = 0; i < tmp.length; i++) {
coord['lat'] = tmp[i].lat();
coord['lng'] = tmp[i].lng();
obj = [coord]; //problem may come from here
}
var contact = new Object();
contact.name = zob;
contact.value = value;
contact.coord = [obj]; // or from here
var jsonresult = JSON.stringify(contact);
console.log(jsonresult);
答案 0 :(得分:2)
您必须创建一个数组并按下坐标,如下所示:
var value = Zones[zob].value;
var tmp = Zones[zob].zone.getPath().getArray();
var obj = []; // Created and array here
for(i=0;i<tmp.length;i++) {
obj.push({
lat: tmp[i].lat(),
lng: tmp[i].lng()
}); // Push an object
}
var contact = new Object();
contact.name = zob;
contact.value = value;
contact.coord = obj; // just assign the value
var jsonresult = JSON.stringify(contact);
console.log(jsonresult);