2012-06-29 29 views
0

所以我的代碼,我想轉成JSON是以下的jQuery不會把這個變成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

Alert?代碼中沒有提示。嘗試'console.log'的JSON並檢查它是否格式正確。 –

+0

你在這個數組中使用什麼上下文? –

回答

5

您最初的聲明是錯誤的:

var locationData = []; 

即創建一個數組,你所期望的,這將無法正常工作;你需要一個對象。您還需要內部初始化任何複雜的數據結構,如address

var locationData = { 
    address: {} 
} 

旁註

數組也是在JavaScript對象,但使用時,它以特殊的方式表現數字屬性。在你的情況下,你根本不使用數字屬性,這就是爲什麼一個普通對象更適合你的需求。

+1

實質上,JavaScript對象*是*關聯數組,您只需將它們聲明爲對象而不是數組。 – jackwanders

+1

哦,是的,在JS中基本上所有東西都是一個對象(甚至索引數組)。 –

+0

@FabrícioMatté對,我已經給我的回答添加了一個旁註:) –

0

剛當你將locationData聲明爲數組時,你需要將locationData ['address']聲明爲一個數組。 (locationData['address']=[]在你的第三或第四行)。

相關問題