티스토리 뷰

개발

JSON To Kotlin Class plugin으로 dto 쉽게 만들기

달리는개발자 2022. 6. 9. 21:48

아래와 같이 기업 정보를 담은 json 파일이 있습니다.

JSON To Kotlin Class plugin을 쓰면 쉽게 DTO를 생성할 수 있습니다.

{
  "response": {
    "body": {
      "items": {
        "item": [
          {
            "basDt": "20220509",
            "crno": "1311110591014",
            "corpNm": "네이버제트 주식회사",
            "corpEnsnNm": "NAVER Z Corporation",
            "enpPbanCmpyNm": "네이버제트",
            "enpRprFnm": "김창욱, 김대욱",
            "corpRegMrktDcd": "E",
            "corpRegMrktDcdNm": "기타",
            "corpDcd": "",
            "corpDcdNm": "",
            "bzno": "6838801933",
            "enpOzpno": "13529",
            "enpBsadr": "경기도 성남시 분당구 분당내곡로 117 (백현동, 크래프톤타워) 8층",
            "enpDtadr": "경기도 성남시 분당구 분당내곡로 117 (백현동, 크래프톤타워) 8층",
            "enpHmpgUrl": "www.naverz-corp.com",
            "enpTlno": "1522-9740",
            "enpFxno": "",
            "sicNm": "63991",
            "enpEstbDt": "20200501",
            "enpStacMm": "12",
            "enpXchgLstgDt": "",
            "enpXchgLstgAbolDt": "",
            "enpKosdaqLstgDt": "",
            "enpKosdaqLstgAbolDt": "",
            "enpKrxLstgDt": "",
            "enpKrxLstgAbolDt": "",
            "smenpYn": "",
            "enpMntrBnkNm": "",
            "enpEmpeCnt": "0",
            "empeAvgCnwkTermCtt": "",
            "enpPn1AvgSlryAmt": "0",
            "actnAudpnNm": "",
            "audtRptOpnnCtt": "",
            "enpMainBizNm": "",
            "fssCorpUnqNo": "01486517",
            "fssCorpChgDtm": "2022/02/23"
          }
        ]
      },
      "numOfRows": 10,
      "pageNo": 1,
      "totalCount": 1
    },
    "header": {
      "resultCode": "00",
      "resultMsg": "NORMAL SERVICE."
    }
  }
}

 

intellij plugin에서 JSON To Kotlin Class를 검색하시고 설치합니다.

kotlin JSON To Kotlin Class plugin

 

아래와 같이 New 하위에 Kotlin data class File from JSON이 나옵니다.

Kotlin data class memu

아래 창에 해당 json을 붙여넣기 하고 Advanced 버튼을 클릭해보세요

generate kotlin data class

아래와 같이 여러 옵션들이 보입니다.

Inner Class Model을 선택하지 않으면 여러 파일로 만들어집니다.

advanced menu

아래 결과물입니다.

data class ResCompanyInfo(
    val response: Response
) {
    data class Response(
        val body: Body,
        val header: Header
    ) {
        data class Body(
            val items: Items,
            val numOfRows: Int,
            val pageNo: Int,
            val totalCount: Int
        ) {
            data class Items(
                val item: List<Item>
            ) {
                data class Item(
                    val actnAudpnNm: String,
                    val audtRptOpnnCtt: String,
                    val basDt: String,
                    val bzno: String,
                    val corpDcd: String,
                    val corpDcdNm: String,
                    val corpEnsnNm: String,
                    val corpNm: String,
                    val corpRegMrktDcd: String,
                    val corpRegMrktDcdNm: String,
                    val crno: String,
                    val empeAvgCnwkTermCtt: String,
                    val enpBsadr: String,
                    val enpDtadr: String,
                    val enpEmpeCnt: String,
                    val enpEstbDt: String,
                    val enpFxno: String,
                    val enpHmpgUrl: String,
                    val enpKosdaqLstgAbolDt: String,
                    val enpKosdaqLstgDt: String,
                    val enpKrxLstgAbolDt: String,
                    val enpKrxLstgDt: String,
                    val enpMainBizNm: String,
                    val enpMntrBnkNm: String,
                    val enpOzpno: String,
                    val enpPbanCmpyNm: String,
                    val enpPn1AvgSlryAmt: String,
                    val enpRprFnm: String,
                    val enpStacMm: String,
                    val enpTlno: String,
                    val enpXchgLstgAbolDt: String,
                    val enpXchgLstgDt: String,
                    val fssCorpChgDtm: String,
                    val fssCorpUnqNo: String,
                    val sicNm: String,
                    val smenpYn: String
                )
            }
        }

        data class Header(
            val resultCode: String,
            val resultMsg: String
        )
    }
}

 

DTO 생성 같은 단순 작업을 JSON To Kotlin Class Plugin을 이용해서 자동화 하세요

코틀린 필수 플러그인입니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함