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

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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