使用X数字对象将{}字符串化

时间:2014-06-25 14:45:17

标签: javascript json

我在下面的代码中遇到了问题。目标是创建一个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);

1 个答案:

答案 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);