마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Json파싱의 효율적 방법..

0 추천

 

JSONObject outputObj = jsonObj.getJSONObject("output");
  String u_fixed = outputObj.getString("u_fixed");
  String u_adult = outputObj.getString("u_adult");
  String u_gold = outputObj.getString("u_mobile_status");
  String u_mobile_status = outputObj.getString("u_mobile_status");
  String u_mobile_no = outputObj.getString("u_mobile_no");
 
위의 코드는 현재 작업중인 코드의 일부입니다.
json을 긁어와 저렇게 각각의 스트링 변수에 파싱을 해놨습니다.
그런데 저기에 담겨 있는 값에 따라 각각의 그 값에 해당되는 미리 규약된 값들을
로컬의 변수에 다시 대입을 해야됩니다.
 
그래서 위의 코드를 저는 아래와 같이 짯습니다.
 
if(u_fixed.equals("Y")) {
LoginState.U_FIXED = true;
}
 
if(u_adult.equals("Y")) {
LoginState.U_ADULT = true;
}
 
LoginState.U_GOLD = Integer.parseInt(u_gold);
 
이런식으로 IF문을 계속 써가면서 처리하고 있는데 이상한 방법인지요..
 
JSON원본의 형식은 이렇습니다.
"retval":"0",
"output":{
"u_fixed":"y",
"u_adult":"Y",
.....생략
}
}
 
지금 제가 파싱해서 값대입하는 방식이 if문을 연속적으로 쓰는것인데 이것이 안좋은 방법인지 궁금합니다.
 
저렇게 짜도 돌아가긴 하겟지만요;;

 

갸아악 (21,260 포인트) 님이 2013년 4월 25일 질문

1개의 답변

0 추천

JSON의 value에 꼭 문자만 들어가야하는것은 아닙니다.

value를 true , false 로 주시고

LoginState.U_ADULT = outputObj.getBoolean("u_adult");

이런식으로 바로 대입시켜서 사용하는게 좋을것같습니다.
얼룩돼지 (15,720 포인트) 님이 2013년 4월 25일 답변
아하 이런 방법이 있군요.
감사드립니다.^^
...