{"id":1432,"date":"2025-02-15T11:17:17","date_gmt":"2025-02-15T02:17:17","guid":{"rendered":"https:\/\/daba-no-heya.com\/?p=1432"},"modified":"2025-02-15T11:17:18","modified_gmt":"2025-02-15T02:17:18","slug":"post-1432","status":"publish","type":"post","link":"https:\/\/daba-no-heya.com\/?p=1432","title":{"rendered":"\u3010Java\u3011Jackson\u3067YAML\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080(record\u4f7f\u7528)"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/daba-no-heya.com\/?p=1432\/#%E6%A6%82%E8%A6%81\" >\u6982\u8981<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/daba-no-heya.com\/?p=1432\/#%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BFusersyaml\" >\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf(users.yaml)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/daba-no-heya.com\/?p=1432\/#pomxml_%E4%B8%80%E9%83%A8%E6%8A%9C%E7%B2%8B\" >pom.xml (\u4e00\u90e8\u629c\u7c8b)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/daba-no-heya.com\/?p=1432\/#%E3%82%B3%E3%83%BC%E3%83%89\" >\u30b3\u30fc\u30c9<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%A6%81\"><\/span>\u6982\u8981<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u524d\u4f5c\u6210\u3057\u305f\u8a18\u4e8b\u3067\u306f\u3001public\u306a\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u3082\u3064\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u3066YAML\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3057\u305f\u3002<br>\u4eca\u56de\u306frecord\u3092\u4f7f\u7528\u3057\u3066YAML\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u524d\u56de\u306e\u8a18\u4e8b: <a href=\"https:\/\/daba-no-heya.com\/?p=889\" data-type=\"post\" data-id=\"889\">Java\u3067YAML\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u307f\u8fbc\u3080(Jackson)<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BFusersyaml\"><\/span>\u4f7f\u7528\u3059\u308b\u30c7\u30fc\u30bf(users.yaml)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>users:\n  - email: tanaka@example.com\n    name: Tanaka-san\n    age: 20\n    message: \u3053\u3093\u306b\u3061\u306f\uff01\n    address:\n      country: Japan\n      city: Tokyo\n  - email: smith@example.com\n    name: John Smith\n    age: 32\n    message: Hello!\n    address:\n      country: United States\n      city: New York\n  - email: ivan@example.com\n    name: Ivan Petrovich\n    age: 51\n    message: \u041f\u0440\u0438\u0432\u0435\u0442!\n    address:\n      country: Russia\n      city: Saint-Petersburg<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"pomxml_%E4%B8%80%E9%83%A8%E6%8A%9C%E7%B2%8B\"><\/span>pom.xml (\u4e00\u90e8\u629c\u7c8b)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java 21<\/li>\n\n\n\n<li>Jackson 2.18.2<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-luxe-blocks-syntaxhighlighter\"><code>&lt;properties>\n    &lt;maven.compiler.source>21&lt;\/maven.compiler.source>\n    &lt;maven.compiler.target>21&lt;\/maven.compiler.target>\n    &lt;project.build.sourceEncoding>UTF-8&lt;\/project.build.sourceEncoding>\n&lt;\/properties>\n\n&lt;dependencies>\n    &lt;!-- https:\/\/mvnrepository.com\/artifact\/com.fasterxml.jackson.core\/jackson-databind -->\n    &lt;dependency>\n        &lt;groupId>com.fasterxml.jackson.core&lt;\/groupId>\n        &lt;artifactId>jackson-databind&lt;\/artifactId>\n        &lt;version>2.18.2&lt;\/version>\n    &lt;\/dependency>\n    &lt;!-- https:\/\/mvnrepository.com\/artifact\/com.fasterxml.jackson.dataformat\/jackson-dataformat-yaml -->\n    &lt;dependency>\n        &lt;groupId>com.fasterxml.jackson.dataformat&lt;\/groupId>\n        &lt;artifactId>jackson-dataformat-yaml&lt;\/artifactId>\n        &lt;version>2.18.2&lt;\/version>\n    &lt;\/dependency>\n&lt;\/dependencies><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%82%B3%E3%83%BC%E3%83%89\"><\/span>\u30b3\u30fc\u30c9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u3082\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9\u3067\u3042\u308b\u3068\u601d\u308f\u308c\u308b\u3001YAML\u306e\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u5bfe\u5fdc\u3059\u308brecord\u3092\u7528\u610f\u3057\u3066<code>ObjectMapper<\/code>\u306e<code>readValue()<\/code>\u30e1\u30bd\u30c3\u30c9\u3067\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-luxe-blocks-syntaxhighlighter line-numbers language-java\"><code class=\"language-java\">package com.github.maeda6uiui.loadyamlsample;\n\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport com.fasterxml.jackson.dataformat.yaml.YAMLFactory;\n\nimport java.io.IOException;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\nimport java.util.List;\n\nrecord Address(String country, String city) {\n}\n\nrecord User(\n        String email,\n        String name,\n        int age,\n        String message,\n        Address address\n) {\n}\n\nrecord Users(List&lt;User> users) {\n}\n\npublic class Main {\n    public static void main(String[] args) {\n        try {\n            String yamlContent = Files.readString(Path.of(\".\/users.yaml\"));\n\n            var mapper = new ObjectMapper(new YAMLFactory());\n            Users users = mapper.readValue(yamlContent, Users.class);\n\n            users.users().forEach(v -> {\n                System.out.printf(\"%s (%s) lives in %s\\n\", v.name(), v.email(), v.address().city());\n            });\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6587\u5b57\u5217\u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tanaka-san (tanaka@example.com) lives in Tokyo\nJohn Smith (smith@example.com) lives in New York\nIvan Petrovich (ivan@example.com) lives in Saint-Petersburg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">record\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3068YAML\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u304c\u7570\u306a\u308b\u5834\u5408\u306f\u3001\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u4ed8\u52a0\u3057\u3066YAML\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<br>\u901a\u5e38\u306e\u30af\u30e9\u30b9\u3092\u7528\u3044\u308b\u5834\u5408\u3068\u540c\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-luxe-blocks-syntaxhighlighter line-numbers language-java\"><code class=\"language-java\">record User(\n        String email,\n        @JsonProperty(\"namae\") String name,\n        int age,\n        String message,\n        Address address\n) {\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 \u4ee5\u524d\u4f5c\u6210\u3057\u305f\u8a18\u4e8b\u3067\u306f\u3001public\u306a\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u3082\u3064\u30af\u30e9\u30b9\u3092\u4f7f\u3063\u3066YAML\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3057\u305f\u3002\u4eca\u56de\u306frecord\u3092\u4f7f\u7528\u3057\u3066YAML\u306e\u30c7\u30fc\u30bf\u3092\u8aad\u307f\u8fbc\u3080\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u524d\u56de\u306e\u8a18\u4e8b: Java\u3067YAML\u30d5\u30a1\u30a4\u30eb [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,16],"tags":[],"class_list":["post-1432","post","type-post","status-publish","format-standard","hentry","category-java","category-16"],"_links":{"self":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1432"}],"version-history":[{"count":6,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1432\/revisions"}],"predecessor-version":[{"id":1438,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=\/wp\/v2\/posts\/1432\/revisions\/1438"}],"wp:attachment":[{"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1432"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1432"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daba-no-heya.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}