티스토리 뷰
728x90
@Test
fun toObject() {
// given
val expected = mapOf(
"a" to 1,
"b" to 2,
)
val json = "{\"a\":1,\"b\":2}"
// when
val map: Map<String, Int> = json.toObject()
// then
assertEquals(expected, map)
}
@Test
fun toJson() {
// given
val expected = "{\"a\":1,\"b\":2}"
val obj = mapOf(
"a" to 1,
"b" to 2,
)
// when
val json = obj.toJson(false)
// then
assertEquals(expected, json)
}
inline fun <reified T> String.toObject(): T {
return JacksonUtil.toObject(this)
}
fun Any?.toJson(isBeauty: Boolean? = true): String {
if (this is String) {
return this
}
return JacksonUtil.toJson(this, isBeauty)
}
object JacksonUtil {
val objectMapper: ObjectMapper = ObjectMapper()
.registerModule(KotlinModule.Builder().build())
.registerModule(JavaTimeModule())
.registerModule(AfterburnerModule())
.configure(SerializationFeature.INDENT_OUTPUT, true)
.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
.registerModule(
JavaTimeModule().apply {
addDeserializer(LocalDate::class.java, LocalDateDeserializer(DateTimeFormatter.ISO_DATE))
addDeserializer(
LocalDateTime::class.java,
LocalDateTimeDeserializer(DateTimeFormatter.ISO_DATE_TIME)
)
}
)
fun toJson(obj: Any?, isBeauty: Boolean? = true): String {
if (obj == null) {
return ""
}
val json = objectMapper.writeValueAsString(obj)
return if (isBeauty!!) {
json
} else {
json.removeSpace()
}
}
inline fun <reified T> toObject(s: String): T {
return objectMapper.readValue(s, object : TypeReference<T>() {})
}
}
728x90
'공부' 카테고리의 다른 글
[kafka] docker-compose (0) | 2022.11.03 |
---|---|
[jq] jq -r ".values[].name" && cURL cookie (0) | 2022.11.03 |
[bitbucket] default description & checkbox not working in description & team mention not working... (0) | 2022.11.02 |
[golang] split (0) | 2022.10.19 |
[golang] merge map (1) | 2022.10.15 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- COUNT
- 클루지
- 메디파크 내과 전문의 의학박사 김영수
- Bot
- 김달
- 테슬라 추천
- 책그림
- 테슬라
- 할인
- 레퍼럴
- 모델 Y 레퍼럴
- Kluge
- 개리마커스
- 테슬라 리퍼럴 코드 혜택
- 유투브
- 모델y
- 테슬라 크레딧 사용
- 어떻게 능력을 보여줄 것인가?
- 테슬라 리퍼럴 코드
- 테슬라 레퍼럴 코드 확인
- 테슬라 레퍼럴 적용 확인
- 테슬라 레퍼럴
- wlw
- 인스타그램
- follower
- 팔로워 수 세기
- 테슬라 리퍼럴 코드 생성
- 연애학개론
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함