jQuery不会把这变成JSON

时间:2012-06-29 02:31:09

标签: jquery arrays json

所以我想把我的代码变成JSON是以下

var locationData = [];
locationData['lat'] = position.coords.latitude;
locationData['long'] = position.coords.longitude;
locationData['address']['road'] = data['address']['road'];
locationData['address']['suburb'] = data['address']['suburb'];
locationData['address']['city'] = data['address']['city'];
locationData['address']['county'] = data['address']['county'];
locationData['address']['state'] = data['address']['state'];
locationData['address']['postcode'] = data['address']['postcode'];
locationData['address']['country'] = data['address']['country'];
locationData['address']['country_code'] = data['address']['country_code'];

但是当我运行它时,它并没有提醒我它已经成功

2 个答案:

答案 0 :(得分:5)

您的初始声明是错误的:

var locationData = [];

创建一个数组,它不会像你期望的那样工作;你想要一个对象。您还需要初始化内部的任何复杂数据结构,例如address

var locationData = {
    address: {}
}

<强>旁注

数组也是JavaScript中的对象,但在使用数字属性时,它以特殊方式运行。在您的情况下,您根本不使用数字属性,这就是常规对象更适合您需求的原因。

答案 1 :(得分:0)

正如您将locationData声明为数组一样,您还需要将locationData ['address']声明为数组。 (locationData['address']=[]在你的第三或第四行。)