2016-09-06 5 views
-4

나는이 JSONbject을 서버에 보내어 android lollipop과 marshmallow의 매력처럼 작동하려고하지만, 안드로이드 kitkat과 그 버전 아래에 로그인하려고하면 json order mixup 때문에 잘못된 사용자 이름과 비밀번호 오류가 발생합니다. 어떻게 해결할 수 있습니까?안드로이드 KITKAT 및 그 이하 버전에서 Json Object Order가 왜 혼합 되었습니까?

 JSONObject jsonObject = new JSONObject(); 
      try { 
       jsonObject.put("USERName", username); 
       jsonObject.put("LOGINPASSWORD", password); 
       jsonObject.put("IMEINUMBER1", imeino); 
       jsonObject.put("Latitude", latitude); 
       jsonObject.put("Longitude", longitude); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 

다음은 안드로이드 킷캣과 버전 아래 호환 문제 내 jsonObject입니다.

{"USERName":"Rahul","Latitude":24.588532515497256,"Longitude":73.7020509167292,"IMEINUMBER1":"911375058484548","LOGINPASSWORD":"12345"} 
+1

json은 순서가 없습니다! [여기] 확인 (http://androiddhina.blogspot.in/2015/09/ordered-json-string-in-android.html) – Piyush

+0

Android Lollipop 및 marshmallow에서 올바르게 작동합니다. 하지만 안드로이드 버전 아래에 왜 그것의 순서가되지? –

+0

당신은 이해하지 못합니다 - 당신은 표준 이상으로 일할 수 없습니다. 'JSON' 표준은 JSON 객체가 ** 이름/값 쌍 **의 정렬되지 않은 집합이라는 것을 의미합니다. 즉, 독자는 JSON 필드 순서에 의존하지 말고'name'에 의해 값에 액세스해야합니다. 순서를 유지하려면 대신 JSON 배열을 사용하십시오. ** 배열은 0 개 이상의 값으로 정렬 된 시퀀스입니다. ** – j2ko

답변

0

JSONObject는 때때로 삽입의 순서로, 때로는하지 않을 수 있습니다, 그 키의 순서를 보장하지 않습니다.

삽입 순서를 유지해야하는 경우 JSONArray을 대신 사용하십시오.