2012-11-27 3 views
1

내 안드로이드 응용 프로그램 내 서버로 보낼 수있는 JSON 문자열을 형성하고있어 매우 간단한 질문 ... 이 ...이 내 코드에 오류 없지만, 자바 (또는 안드로이드)는의 값을 넣습니다 나는 내가 서버에서 JSON 문자열 내 데이터베이스의 일부 테이블을 업데이트하는 것을 처리해야하기 때문에 ..., 내 PHP 코드를이 문제를 해결하려는 이유는 ...Android가 내 JSON 문자열의 순서를 변경하는 이유는 무엇입니까?

모르는 내 다른 순서 서버는 JSON 문자열을 디코드하기 위해 앱에서 사용한 것과 동일한 순서를 사용하지만 순서를 변경하는 Android (또는 자바) 때문에 테이블을 업데이트하는 데 문제가 있습니다 ...

아이디어가 있으십니까? 미리 감사드립니다!

나는 이것에 대해 이야기하고 : 내 응용 프로그램에서

다음 로그 캣에서

json_data.put("id_visit", visits.getString(visits.getColumnIndexOrThrow("id_visit"))); 
json_data.put("id_form", visits.getString(visits.getColumnIndexOrThrow("id_form"))); 
json_data.put("id_establishment", visits.getString(visits.getColumnIndexOrThrow("id_establishment"))); 
json_data.put("id_promoter", visits.getString(visits.getColumnIndexOrThrow("id_promoter"))); 
json_data.put("actual_date", visits.getString(visits.getColumnIndexOrThrow("actual_date"))); 
json_data.put("receiver", visits.getString(visits.getColumnIndexOrThrow("receiver"))); 
json_data.put("observations", visits.getString(visits.getColumnIndexOrThrow("observations"))); 
json_data.put("gps_coordinates", visits.getString(visits.getColumnIndexOrThrow("gps_coordinates"))); 

: 당신이 볼 수 있듯이, 그 순서를 테하지

{ 
"id_promoter":"1", 
"id_establishment":"5", 
"id_visit":"1", 
"receiver":"brenda lopez", 
"gps_coordinates":"10.4905567 -66.8710966", 
"actual_date":"2012-11-27", 
"id_form":"1", 
"observations":"observaciones" 
} 

! 왜 이런거야?

나는 다른 사람이 이미이 요구한다면, 점검의 시간을 할애하지 죄송합니다,하지만 난 조금 서둘러, 그래서 ... 죄송합니다! xD

+1

왜 주문이 중요합니까? – Rawkode

+1

요소의 순서는 json 표준의 일부가 아닙니다. –

+0

PHP에서 직접 json 파서를 작성하기 위해 기울이는 순서 b/c 만 신경 써야할까요? 대신에''json_decode' (http://php.net/manual/en/function.json-decode.php)를 사용하십시오. – grossvogel

답변

4

개체 키가 JSON으로 정렬되지 않습니다. 특정 주문이 필요한 경우 배열을 사용하는 것이 좋습니다.

[ 
    {"id_promoter":"1"}, 
    {"id_establishment":"5"}, 
    {"id_visit":"1"}, 
    {"receiver":"brenda lopez"}, 
    {"gps_coordinates":"10.4905567 -66.8710966"}, 
    {"actual_date":"2012-11-27"}, 
    {"id_formu":"1"}, 
    {"observations":"observaciones"} 
] 

총체적이지만 순서는 배열입니다.

또 다른 방법은 원하는 순서로 키 이름 배열을 정의하는 것이다. 그런 다음 원래 객체 구조를 사용할 수 있지만 배열로 정의 된 키를 통해 액세스 할 수 있습니다. 이것은 분명히 더 많은 코딩 작업을 필요로하지만 문제를 해결할 수도 있습니다.

관련 문제