{"id":1083,"date":"2022-12-21T18:32:46","date_gmt":"2022-12-21T09:32:46","guid":{"rendered":"https:\/\/java.ihavenomoney.co.kr\/?page_id=1083"},"modified":"2022-12-22T13:41:23","modified_gmt":"2022-12-22T04:41:23","slug":"jackson-%ec%9d%bc%eb%b0%98%ec%98%a4%eb%a5%98","status":"publish","type":"page","link":"https:\/\/java.ihavenomoney.co.kr\/?page_id=1083","title":{"rendered":"Jackson, Gson : class model \uc77c\ubc18\uc624\ub958 \ucc98\ub9ac"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"> 1.Jackson<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Remark : Json \ud544\ub4dc \uc5c6\uc73c\uba74 \ubb34\uc2dc <\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\uc624\ub958: <\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Class  \ub2e8\uc704\ub85c \ubb34\uc2dc \ub123\uae30 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);<br>\ud074\ub798\uc2a4 \uc18d\uc131\uc774 \uc798\ubabb\ub418\uc5b4\ub3c4 \uadf8\ub0e5 \ubb34\uc2dc\ud568.<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \" >    public static void main(String[] args) throws IOException, LifecycleException {\n\n        \/\/SpringApplication.run(DemoApplication.class, args);\n        DemoApplication demo = new DemoApplication();\n        JSONObject sJson = demo.TestJsonRead(\"Testdata.json\"); \/\/class\n\n        ObjectMapper objectMapper = new ObjectMapper()\n                .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);\n\n        try{\n            Sdata sdata = objectMapper.readValue(sJson.toJSONString(),Sdata .class );\n\n            System.out.println(sdata .getFarLst().size());\n\n        } catch (JsonParseException e) {\n            \/\/ TODO Auto-generated catch block\n            e.printStackTrace();\n        } catch (JsonMappingException e) {\n            \/\/ TODO Auto-generated catch block\n            e.printStackTrace();\n        } catch (IOException e) {\n            \/\/ TODO Auto-generated catch block\n            e.printStackTrace();\n        }\n\n        System.out.println(\"ok\");\n    }<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ObjectMapper \uc5d0 \ubb34\uc2dc \ub123\uae30 @JsonIgnoreProperties(ignoreUnknown = true)<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \">@JsonProperty(\"gkTrgtYn\")\n    @JsonIgnoreProperties(ignoreUnknown = true)\n    public String getGkTrgtYn() {\n        return this.gkTrgtYn; }\n    public void setGkTrgtYn(String gkTrgtYn) {\n        this.gkTrgtYn = gkTrgtYn; }\n    String gkTrgtYn;<\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.Gson<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Remark :  Json \ud544\ub4dc\uac00 \uc5c6\uc73c\uba74 \uc790\ub3d9 \ubb34\uc2dc \ud558\ub098. \ud074\ub798\uc2a4 \uc18d\uc131\uc774 \uc798\ubabb\ub418\uba74 \uc5d0\ub7ec <\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>Caused by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 2.7 at line 1 column 1478620 path $.Lst&#91;165].cardPromLst&#91;0].Rate<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ubaa8\ub378 \ud074\ub798\uc2a4 \uc18d\uc131 int<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \">@JsonProperty(\"Rate\")\n    public int getRate() {\n        return this.totRate; }\n    public void setRate(int Rate) {\n        this.Rate = Rate; }\n\nint Rate;\n<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\uc218\uc815 String<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \" title=\"\uc218\uc815\">@JsonProperty(\"Rate\")\n    public String getRate() {\n        return this.totRate; }\n    public void setRate(String Rate) {\n        this.Rate = Rate; }\n\nString Rate;<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Class  \ub2e8\uc704\ub85c \ubb34\uc2dc\ub294 \uc790\ub3d9\ucc98\ub9ac, \uc5c6\uc73c\uba74 null \uc73c\ub85c \ub300\uccb4 \uc635\uc158: serializeNulls()<\/h3>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \" >package com.example.demo;\n\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport com.google.gson.Gson;\nimport com.google.gson.GsonBuilder;\nimport com.google.gson.JsonElement;\nimport com.google.gson.JsonParser;\n\nimport org.apache.catalina.LifecycleException;\n\nimport org.json.simple.JSONObject;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\n\nimport java.io.*;\nimport java.net.HttpURLConnection;\n\nimport java.net.URL;\n\nimport service.SimpleRead;\n\nimport vo.ScheAirFarRs.ScheAirFarRsVo;\n\n@SpringBootApplication\npublic class DemoApplication {\n\n    public static void main(String[] args) throws IOException, LifecycleException {\n\n        \/\/SpringApplication.run(DemoApplication.class, args);\n        DemoApplication demo = new DemoApplication();\n\n        JSONObject sJson = demo.TestJsonRead(\"Testjson.json\");  \/\/ \ud568\uc218\n\n        GsonBuilder gsonBuilder = new GsonBuilder();\n        gsonBuilder.serializeNulls(); \/\/\uc5c6\uc74c\uba74  null\ub85c \ub300\uccb4\n        Gson gson = gsonBuilder.create();\n\n        try {\n\n            Sdata sdata =gson.fromJson(sJson.toJSONString(), Sdata .class);\n\n            System.out.println(sdata.getFarLst().size());\n\n            } catch (Exception e) {\n\n                throw new RuntimeException(\"Unexpected error during parsing body param.\", e);\n            }\n\n        System.out.println(\"ok\");\n    }\n\npublic JSONObject TestJsonRead(String FileName)\n    {\n        SimpleRead simpleRead = new SimpleRead();\n\n        JSONObject sResult;\n\n        sResult = simpleRead.ReadJson(FileName);\n\n       \/\/ System.out.println(sResult.toJSONString());\n        return sResult;\n    }\n}<\/pre><\/div>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:java decode:true \">package service;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.json.simple.JSONObject;\nimport org.json.simple.parser.JSONParser;\nimport org.json.simple.parser.ParseException;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\n\n@Controller\npublic class SimpleRead {\n\n    private final Logger logger = LoggerFactory.getLogger(this.getClass());\n    @GetMapping(\"ReadJson\")\n    public JSONObject ReadJson(String Filename) { \/\/ReadJson\n\n        String RetVal = \"\";\n\n        JSONObject jsonObject = new JSONObject();\n\n        try {\n            JSONParser parser = new JSONParser();\n            try(BufferedReader br = new BufferedReader(new FileReader(Filename)))\n            {\n                String line;\n                while ((line = br.readLine()) != null) {\n                    RetVal = RetVal + line;\n                    \/\/System.out.println(line);\n                }\n            }\n\n            jsonObject = (JSONObject) parser.parse(RetVal);\n\n        } catch (ParseException | IOException e) {\n            logger.debug(e.toString());\n            throw new RuntimeException(e);\n        }\n        return jsonObject;\n    }\n}<\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>1.Jackson Remark : Json \ud544\ub4dc \uc5c6\uc73c\uba74 \ubb34\uc2dc \uc624\ub958: Class \ub2e8\uc704\ub85c \ubb34\uc2dc \ub123\uae30 .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false);\ud074\ub798\uc2a4 \uc18d\uc131\uc774 \uc798\ubabb\ub418\uc5b4\ub3c4 \uadf8\ub0e5 \ubb34\uc2dc\ud568. ObjectMapper \uc5d0 \ubb34\uc2dc \ub123\uae30 @JsonIgnoreProperties(ignoreUnknown = true) 2.Gson Remark : Json \ud544\ub4dc\uac00 \uc5c6\uc73c\uba74 \uc790\ub3d9 \ubb34\uc2dc \ud558\ub098. \ud074\ub798\uc2a4 \uc18d\uc131\uc774 \uc798\ubabb\ub418\uba74 \uc5d0\ub7ec \ubaa8\ub378 \ud074\ub798\uc2a4 \uc18d\uc131 int \uc218\uc815 String Class \ub2e8\uc704\ub85c \ubb34\uc2dc\ub294 \uc790\ub3d9\ucc98\ub9ac, \uc5c6\uc73c\uba74 null \uc73c\ub85c \ub300\uccb4 \uc635\uc158: serializeNulls()<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1083","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/pages\/1083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1083"}],"version-history":[{"count":9,"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/pages\/1083\/revisions"}],"predecessor-version":[{"id":1098,"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/pages\/1083\/revisions\/1098"}],"wp:attachment":[{"href":"https:\/\/java.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}