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

JSONobject 관련질문입니다

0 추천
	/**
	 * @param var : 세션 정보의 주 영역
	 * @param subvar : 부 영역
	 * @param def : 기본값
	 * @return 세션에 저장된 값 또는 기본값
	 */
	private long getSession(String var, String subvar, long def) {
		if (subvar != null)
		return session.optJSONObject(var).optLong(subvar, def);
		else
		return def;
	};

 session은 JSONobejct입니다.

그렇다면 subvar != null일때 session의 index (var)을 읽은 후, var의 index (subvar)에 저장된 value를 return해주는 건가요? 

카별 (360 포인트) 님이 2013년 7월 13일 질문

1개의 답변

0 추천
 
채택된 답변
네, 맞습니다.

 

 8번째 라인에서   중괄호가 생략된 if 문 에서 subvar 가 null 일 경우

 9 번째 라인에서 Json 의 내부 값을 구해서 리턴을 해주는데요.

   session 에는 아마도 이런 형태의 Json 데이터가 들어가 있을거라 생각됩니다.

  { "key_var" : { "key_subvar" : "value",  ..... }

  session 의 메소드인  optJsonObject 를 호출하여 var를 갖는 JsonObject 를 가져오며  (예를들어 위에 예시로 언급한 Json 데이터에서  { "key_subvar" : "value",  ..... } 이 부분을 가져옵니다. )   이 곳에서 subVar 를 갖는 Long 값을 가져옵니다. 만약 subVar 의 key (또는 index ) 에 해당하는 값이 없을 경우 미리 입력한 def 를 리턴합니다.

  이미 알고 계실지도 모르겠으나, 참고로 JsonObject 의 메소드 중에 opt 가 붙은 메소드들은, 인자값으로 넣은 key (또는 index)  에 해당하는 값이 없을 경우 null을 리턴합니다. 아니면, 두 번째 인자값으로 디폴드가 들어갈 경우 null 대신 그 것을 리턴합니다.
칸쵸 (1,580 포인트) 님이 2013년 7월 13일 답변
카별님이 2013년 7월 13일 채택됨
...