An open API service indexing awesome lists of open source software.

https://github.com/jun-labs/json-handling

πŸ” Json 데이터 핸듀링 예제.
https://github.com/jun-labs/json-handling

data gson jackson json json-object

Last synced: about 1 month ago
JSON representation

πŸ” Json 데이터 핸듀링 예제.

Awesome Lists containing this project

README

          

# Json Handling

Gsonκ³Ό Jackson 라이브러리λ₯Ό ν†΅ν•œ Json 객체 핸듀링.






## πŸ’» ν”„λ‘œκ·Έλž¨ μ‹€ν–‰

app λͺ¨λ“ˆμ˜ ExampleTest.kts에, resource 폴더 λ‚΄ weather.json 파일경둜 μ§€μ •.

````kotlin
@DisplayName("[UnitTest] 날씨 예제 λ‹¨μœ„ ν…ŒμŠ€νŠΈ")
class ExampleUnitTest {

@Test
@DisplayName("Json νŒŒμΌμ— 데이터λ₯Ό μΆ”κ°€ν•  수 μžˆλ‹€.")
fun trafficAdditionalTest() {
val filePath = "PATH"

val fileContent = File(filePath).readText()
val result = add(fileContent)

assertThat(result).contains("traffic")
}
}
````








λΉŒλ“œ ν›„ μ‹€ν–‰.

```shell
# λΉŒλ“œ
./gradlew :app:build
```












## πŸ“ Json 데이터 핸듀링

`Gson` λ˜λŠ” `Jackson` 라이브러리λ₯Ό μ‚¬μš©ν•΄ Json 데이터λ₯Ό λ°°μ—΄λ‘œ λ§Œλ“  ν›„, 데이터λ₯Ό μΆ”κ°€/μ‚­μ œν•  수 μžˆλ‹€.

```kotlin
@Test
@DisplayName("Json 객체에 λ°°μ—΄ 데이터λ₯Ό μΆ”κ°€ν•  수 μžˆλ‹€.")
fun jsonArrayAdditionalTest() {
val jsonStr = "{\"name\":\"Jun\", \"age\":7}"
val jsonObj = createObj(jsonStr)

val jsonArray = JsonArray().apply {
add("item1")
add("item2")
}
jsonObj.add("items", jsonArray)

val result = gson.toJson(jsonObj)
val expected = "{\"name\":\"Jun\",\"age\":7,\"items\":[\"item1\",\"item2\"]}"

assertEquals(expected, result)
}
```

```kotlin
@Test
@DisplayName("Json κ°μ²΄μ—μ„œ 데이터λ₯Ό μ‚­μ œν•  수 μžˆλ‹€.")
fun jsonDataRemoveTest() {
val jsonStr = "{\"name\":\"Jun\", \"age\":7}"
val jsonObj = createObj(jsonStr)

val jsonArray = JsonArray().apply {
add("item1")
add("item2")
}
jsonObj.add("items", jsonArray)
jsonObj.remove("items")

val result = Gson().toJson(jsonObj)
val expected = "{\"name\":\"Jun\",\"age\":7}"

assertEquals(expected, result)
}
```








이λ₯Ό 톡해 λΉŒλ“œ μ‹œ, λΆ€κ°€ μž‘μ—…μ΄ κ°€λŠ₯ν•˜λ©°, buildSrc을 톡해 μ½”λ“œλ₯Ό μž¬ν™œμš©ν•  수 μžˆλ‹€.

```shell
β”œβ”€β”€ buildSrc
β”‚ β”œβ”€β”€ build
β”‚ β”‚ β”œβ”€β”€ classes
β”‚ β”‚ β”‚ └── java
β”‚ β”‚ β”‚ └── main
β”‚ β”‚ β”‚ └── ScriptUtils.class
β”‚ β”‚ β”œβ”€β”€ generated
β”‚ β”‚ β”‚ └── sources
β”‚ β”‚ β”‚ β”œβ”€β”€ annotationProcessor
β”‚ β”‚ β”‚ β”‚ └── java
β”‚ β”‚ β”‚ └── headers
β”‚ β”‚ β”‚ └── java
β”‚ β”‚ β”œβ”€β”€ libs
β”‚ β”‚ β”‚ └── buildSrc.jar
β”‚ β”‚ └── tmp
β”‚ β”‚ β”œβ”€β”€ compileJava
β”‚ β”‚ β”‚ └── previous-compilation-data.bin
β”‚ β”‚ └── jar
β”‚ β”‚ └── MANIFEST.MF
β”‚ β”œβ”€β”€ build.gradle.kts
β”‚ └── src
β”‚ └── main
β”‚ └── java
β”‚ └── ScriptUtils.java # λΉŒλ“œ μŠ€ν¬λ¦½νŠΈμ—μ„œ ν™œμš© κ°€λŠ₯

......

```