2012-05-15 2 views
0

fisrt JSONjson 개체의 인덱스가 왜 일관성이 없습니까?

{value:[{"sk_service":"1","hour":"0","sum(transaction)":"1636"}]} 

초 JSON은

다음
{value:[{"sk_service":"1","month":"04","sum(transaction)":"19572"}]} 

내가이 내 JSON에서 속성

String a= JSONArray.getJSONObject(0).names().getString(0); //0 
String b= JSONArray.getJSONObject(0).names().getString(1); //1 

결과를 알 않습니다

첫 JSON

을3210
a = sum(transaction) //index 0. 
b = hour   //index 1. 

초 JSON

a = month  //index 0. 
b = sum(transaction) //index 1. 

이유는 결과가 제 1 및 제 2 JSON 간의 일관성이 있는가?

+0

JSONArray에 대해 모르겠으나 개체의 속성은 JSON으로 정렬되지 않습니다. – Bergi

+0

JSON-fisrt 샘플을 수정하고 두 번째 구조가 동일 할 수 있습니다. 동일한 모양으로 다른 결과를 얻으면 구문 분석에 사용하는 코드를 게시 할 수 있습니다. –

+0

두 JSON 예제 모두 유효한 JSON이 아닙니다. – Thanatos

답변

0

JSON : 자바 스크립트 객체 표기법 - 당신은 객체로 취급하고 명시 적 속성에 액세스 할 수 있습니다 : 당신은 지금 당신이 검색 할 수있게된다 배열이

var data = new Array(); 

for(var index = 0; index < JSONArray.length; index++){ 
    data.push(eval("(" + JSONArray.getJSONObject(index) + ")")); 
} 

:

이 트릭을 할해야 데이터는 명시 적으로 :

,691 :

data[0].value["sk_service"] will give you "1" 
data[1].value["month"] will give you "04" 
data[0].value["sum(transaction)"] will give you "1636" 

난 당신이 다시 요소를 귀하의 JSON을 건의 할 것

코드가 나중에 나중에 혼란을 피할 수 sum(transaction)transactionSum에 이름을 변경 단순화 기간 및 기간 특성을 소개하는 두 번째 JSON

{value:[{"sk_service":"1","period":"month","duration":"4","transactionSum":"19572"}]} 

.

0

혼란 스러울 가능성이 있습니까?

String a= JSONArray.getJSONObject(0).names().getString(0); 
String b= JSONArray.getJSONObject(1).names().getString(0); 

getJSONObject()는 JSON 객체를 반환하고, 코드에서 동일한 JSON 객체를 사용하고있는 것으로 보인다.

getString()은 해당 색인과 일치하는 문자열을 반환합니다. 각 JSON의 첫 번째 요소가 필요하다고 가정하면 두 경우 모두 0을 지정하지 않습니다.

관련 문제