2012-06-29 3 views
0

내가 JSON으로 전환하려는 내 코드가jQuery를 못해 설정이

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

경고? 코드에는 경고가 없습니다. JSON을'console.log' 해보고 잘 형성되었는지 확인하십시오. –

+0

이 배열을 사용하고있는 컨텍스트는 무엇입니까? –

답변

5

귀하의 초기 선언은 잘못된 것입니다 :

사용자가 예상하는대로 작동하지 않습니다 배열을 생성
var locationData = []; 

; 대신 개체가 필요합니다. 배열은 또한 자바 스크립트의 객체입니다

var locationData = { 
    address: {} 
} 

(!) 참고하지만, 사용할 때 특별한 방식으로 동작 : 당신은 또한 address로, 내부에 복잡한 데이터 구조를 초기화해야 숫자 속성. 귀하의 경우에는 숫자 속성을 전혀 사용하지 않으므로 정규 개체가 귀하의 필요에 더 잘 맞는 것입니다.

+1

본질적으로 javascript 객체 *는 연관 배열입니다. 배열이 아닌 객체로 선언하면됩니다. – jackwanders

+1

오 예, JS에서는 기본적으로 모든 것이 객체입니다 (심지어 색인 배열). –

+0

@ FabrícioMatté 맞아요, 제 답변에 쪽지를 추가했습니다. :) –

0

그냥 성공했다고 나에게 경고하지 않습니다 JSON에있다 locationData를 배열로 선언하면 locationData [ 'address']도 배열로 선언해야합니다. (세 번째 또는 네 번째 줄에 locationData['address']=[]).