JSONObject란?
JSONObject란 JSON 형식의 String을 처리하도록 도와주는 Java 라이브러리이다.
JSONObject 사용 준비하기
JSONObject를 사용하기 위해 더미 JSON 파일이 있다고 가정해보자.
{
"title": "android",
"version" : 1,
"isValid" : false,
"types": [
"class",
"interface",
"object"
]
}
위 JSON은 Kotlin String으로는 다음과 같이 변환된다.
val result = "{'title':'android', 'version' : 0, 'isValid' : false, 'types':['class',''interface','object']}"
JSONObject 사용하기
JSON은 Key-Value 값으로 이루어진 쌍이다. Key는 무조건 String이며 Value는 문자열(String), 숫자(Int, Double, Long), 불리언(Boolean) 값이 올 수 있으며, Array형태의 값도 올 수 있다.

따라서 JSONObject는 이에 맞춰서 연산들을 제공한다. 아래에서는 이 중 대표적인 String, Int, Boolean 을 다룬다.
String 값 가져오기
String은 다음과 같이 가져올 수 있다. getString은 String 타입으로 반환되며 get은 Any 타입으로 반환된다. 따라서 Any타입으로 반환된 get은 toString()을 통해 형변환을 해주어야 한다.
val title : String = json.getString("title")
val titleFromAny : String = json.get("title").toString()
Int 값 가져오기
Int 값은 getInt와 get으로 가져올 수 있다. getInt는 Int를 return하며, get은 Any를 return한다. 따라서 두 번 형변환을 해주어야 Int로 변환할 수 있다.
val version = json.getInt("version")
val versionFromAny = json.get("name").toString().toInt()
Boolean 값 가져오기
Boolean은 형변환을 하지 말고 무조건 getBoolean으로 가져오는 편이 좋다.
val isValid = json.getBoolean("isValid")
JSONArray가져오기
JSONArray는 json.optJSONArray를 사용해 JSONArray 객체로 가져올 수 있으며 List<String>으로 형변환 하기 위해서는 map 함수를 사용해야 한다.
val jsonArray: JSONArray = json.optJSONArray("types")
val types : List<String> = (0 until jsonArray.length()).map {
jsonArray.getString(it).toString()
}
정리
JSONObject는 String을 JSONObject객체로 변환해서 Key값으로 Value를 가져오도록 해준다. 이때 필요한 타입에 맞추어 메서드를 써서 Value 값을 가져와야 한다.
JSONObject란?
JSONObject란 JSON 형식의 String을 처리하도록 도와주는 Java 라이브러리이다.
JSONObject 사용 준비하기
JSONObject를 사용하기 위해 더미 JSON 파일이 있다고 가정해보자.
{
"title": "android",
"version" : 1,
"isValid" : false,
"types": [
"class",
"interface",
"object"
]
}
위 JSON은 Kotlin String으로는 다음과 같이 변환된다.
val result = "{'title':'android', 'version' : 0, 'isValid' : false, 'types':['class',''interface','object']}"
JSONObject 사용하기
JSON은 Key-Value 값으로 이루어진 쌍이다. Key는 무조건 String이며 Value는 문자열(String), 숫자(Int, Double, Long), 불리언(Boolean) 값이 올 수 있으며, Array형태의 값도 올 수 있다.

따라서 JSONObject는 이에 맞춰서 연산들을 제공한다. 아래에서는 이 중 대표적인 String, Int, Boolean 을 다룬다.
String 값 가져오기
String은 다음과 같이 가져올 수 있다. getString은 String 타입으로 반환되며 get은 Any 타입으로 반환된다. 따라서 Any타입으로 반환된 get은 toString()을 통해 형변환을 해주어야 한다.
val title : String = json.getString("title")
val titleFromAny : String = json.get("title").toString()
Int 값 가져오기
Int 값은 getInt와 get으로 가져올 수 있다. getInt는 Int를 return하며, get은 Any를 return한다. 따라서 두 번 형변환을 해주어야 Int로 변환할 수 있다.
val version = json.getInt("version")
val versionFromAny = json.get("name").toString().toInt()
Boolean 값 가져오기
Boolean은 형변환을 하지 말고 무조건 getBoolean으로 가져오는 편이 좋다.
val isValid = json.getBoolean("isValid")
JSONArray가져오기
JSONArray는 json.optJSONArray를 사용해 JSONArray 객체로 가져올 수 있으며 List<String>으로 형변환 하기 위해서는 map 함수를 사용해야 한다.
val jsonArray: JSONArray = json.optJSONArray("types")
val types : List<String> = (0 until jsonArray.length()).map {
jsonArray.getString(it).toString()
}
정리
JSONObject는 String을 JSONObject객체로 변환해서 Key값으로 Value를 가져오도록 해준다. 이때 필요한 타입에 맞추어 메서드를 써서 Value 값을 가져와야 한다.