JSONObject jo_header = new JSONObject();
  JSONObject jo_detail = new JSONObject();
  JSONArray ja = new JSONArray();
  try {
   jo_header.put("JOB_DT", "20120116");
   jo_header.put("JOB_TYPE", "W");
   jo_header.put("CLIENT", "127.0.0.1");
   jo_header.put("WCC", "DONG");
   jo_header.put("REC_CNT", "1");
   jo_header.put("STATUS", "");
   jo_header.put("MESSAGE", "");

 

   jo_detail.put("DONG_NM", et.getText());
   jo_detail.put("INPUT_DT", "20120116132412");

 

   ja.put(0, jo_detail);

 

   jo_header.put("DETAIL", ja);
   
   str =  jo_header.toString();
   

   Log.d("test"," SEND DATA " + str);
  } catch (JSONException e) {
   e.printStackTrace();
  }

 

 

JSON 포맷으로 스트링을 만들어 넘기려고 합니다. 그러나,

put 순서대로 출력되지 않네요. 아래와 같이 보이려고 하는데요.

 

 {"JOB_DT":"20120116","JOB_TYPE":"W","CLIENT":"127.0.0.1","WCC":"DONG","REC_CNT":"1","STATUS":"","MESSAGE":"",

"DETAIL":[{"DONG_NM":"신길동","INPUT_DT":"20120116132412"}]}

 

자꾸 순서가 뒤죽박죽이 되어 나옵니다. 특별한 규칙이 있는 것도 아니고 put 순서를 바꿔봐도

 {"WCC":"DONG","MESSAGE":"","CLIENT":"127.0.0.1",

"DETAIL":[{"INPUT_DT":"20120116132412","DONG_NM":""}],"JOB_DT":"20120116","STATUS":"","JOB_TYPE":"W","REC_CNT":"1"}

요런 순서로 나오네요..

 

얼핏 java에서는 JSONObject 는 순서대로 안되고,

JSONArray는 순서대로 나온다고 하네요.

자료구조 상 차이 같긴 한데,

 

문제는 JSONArray로 하면 순서대로는 되었지만,

 { : , : , : , : , : [{:}] } 같은 형식이 아니라

 [{:},{:},{:},{:[{:}]}] 이렇게 중괄호가 배열식으로 나와버리는 바람에 서버측에서 제대로 파싱을 못하네요..

 

맨위 소스에서 제가 뭔가 잘못한부분이 있는가 싶기두 하구요.

아니라면 JSONObject 로 어떻게 제 마음대로 순서를 정해 스트링을 만들 수 있을까요?..

 

으,.. ㅠㅠㅠ 죽겠습니다. 살려주십쇼!! 고수님들!