Skip to content

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

Notifications You must be signed in to change notification settings

jun-labs/json-handling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2e44072 Β· Apr 1, 2024

History

8 Commits
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024
Apr 1, 2024

Repository files navigation

Json Handling

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




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

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

@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")
    }
}




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

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






πŸ“ Json 데이터 핸듀링

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

@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)
}
@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을 톡해 μ½”λ“œλ₯Ό μž¬ν™œμš©ν•  수 μžˆλ‹€.

β”œβ”€β”€ 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  # λΉŒλ“œ μŠ€ν¬λ¦½νŠΈμ—μ„œ ν™œμš© κ°€λŠ₯

    ......
    

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published