Hyeyeon blog

[Android] Json 과 Array, Map 간의 변환 방법 본문

개발/Android

[Android] Json 과 Array, Map 간의 변환 방법

Hyeyeon.P 2020. 9. 24. 23:22
반응형

1. JsonArray String -> 2차 배열 변환

val json: String = "[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]"
val jsonArray: JsonArray = JsonParser().parse(json) as JsonArray

for (arr1 in jsonArray) {
  for (arr2 in arr1.asJsonArray) {
      print(arr2)
  }
  println()
}
0000
1111
2222
3333

 

2. JsonArray String -> 3차 배열 변환

val json: String = "[[[0, 0, 0, 0], [0, 0, 0, 0] ], [[1, 1, 1, 1], [1, 1, 1, 1]]]"
val jsonArray: JsonArray = JsonParser().parse(json) as JsonArray

for (arr1 in jsonArray) {
  for (arr2 in arr1.asJsonArray) {
    for (arr3 in arr2.asJsonArray) {
      print(arr3)
    }
    println()
  }
}
0000
0000
1111
1111

 

3. 2차 배열 -> JsonArray 변환

val arrary = arrayOf(arrayOf(0, 0, 0, 0), arrayOf(1, 1, 1, 1), arrayOf(2, 2, 2, 2), arrayOf(3, 3, 3, 3))
val result = JsonArray()

for (data1 in array) {
  val jsonArray = JsonArray()
  for (data2 in data1) {
    jsonArray.add(data2)
  }
  result.add(jsonArray1)
}

println(result)
[[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3]]

 

4. 3차 배열 -> JsonArray 변환

val array = arrayOf(arrayOf(arrayOf(0, 0, 0, 0), arrayOf(0, 0, 0, 0)), arrayOf(arrayOf(1, 1, 1, 1), arrayOf(1, 1, 1, 1)))
val result = JsonArray()

for (data1 in array) {
  val jsonArray1 = JsonArray()
  for (data2 in data1) {
    val jsonArray2 = JsonArray()
    for (data3 in data2) {
      jsonArray2.add(data3)
    }
    jsonArray1.add(jsonArray2)
  }
  result.add(jsonArray1)
}

println(result)

 

5. JsonObject String -> Map 변환

val mapJson = "{ A: a, B: b, C: c}"
val jsonObject: JsonObject = JsonParser().parse(mapJson).asJsonObject
val resultMap = Gson().fromJson<HashMap<String, String>>(jsonObject.toString(), HashMap::class.java)

 

6. Map -> JsonObject 변환

val jsonObject = JsonObject()
for(key in resultMap.keys){
  jsonObject.addProperty(key, resultMap[key])
}
728x90
Comments