{"id":266,"date":"2013-08-06T00:43:51","date_gmt":"2013-08-05T15:43:51","guid":{"rendered":"http:\/\/www.rocher.kyoto.jp\/araburu\/?p=266"},"modified":"2013-08-07T18:08:54","modified_gmt":"2013-08-07T09:08:54","slug":"json-processing%ef%bc%88jsr-353%ef%bc%89%e3%81%ab%e5%af%84%e3%82%8a%e9%81%93%ef%bc%91","status":"publish","type":"post","link":"https:\/\/www.rocher.kyoto.jp\/arbr\/?p=266","title":{"rendered":"JSON Processing\uff08JSR-353\uff09\u306b\u5bc4\u308a\u9053\uff11"},"content":{"rendered":"<p>Websocket\u3067\u8907\u6570\u306e\u30c7\u30fc\u30bf\u3092\u9001\u308d\u3046\u3068\u3057\u305f\u969b\u306b\u3001JavaEE7\u3067JSON Processing\u304c\u51fa\u3066\u305f\u306e\u3092\u601d\u3044\u51fa\u3057\u305f\u306e\u3067\u89e6\u3063\u3066\u307f\u305f\u3002<\/p>\n<p><a href=\"https:\/\/blogs.oracle.com\/arungupta\/entry\/json_p_java_api_for#\">Arun\u3055\u3093\u306e\u30d6\u30ed\u30b0<\/a>\u306b\u3042\u308b\u3088\u3046\u306bJSON\u3068Object\u9593\u306e\u30c7\u30fc\u30bf\u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u307e\u3067\u306f\u3084\u3063\u3066\u304f\u308c\u306a\u3044\u3002<\/p>\n<p>(Note, binding JSON to Java objects and vice versa is not part of the scope of this JSR.)<\/p>\n<p>\u60f3\u5b9a\u7528\u9014(?)\u3092\u63a2\u3057\u3066<a href=\"http:\/\/java.dzone.com\/articles\/java-api-json-processing-%E2%80%93\">\u898b\u3064\u3051\u305f\u30d6\u30ed\u30b0<\/a>\u306b\u3088\u308b\u3068<a href=\"http:\/\/www.javainthebox.net\/laboratory\/JavaSE6\/stax\/stax.html\">Stax\u3067Dom\u64cd\u4f5c<\/a>\u3059\u308b\u611f\u899a\u3067\u4f7f\u3048\u308b\u3088\u3068\u306e\u3053\u3068\u3002<\/p>\n<p>-&gt;<a href=\"http:\/\/jcp.org\/en\/jsr\/detail?id=353\">JCP<\/a>\u306b\u3057\u3063\u304b\u308a\u66f8\u3044\u3066\u3042\u3063\u305f\u3002\uff082.1\uff09<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u5229\u7528\u8a2d\u5b9a(Maven)<\/strong><\/p>\n<p>pom\u306b\u4f9d\u5b58\u95a2\u4fc2\u3092\u8ffd\u52a0<\/p>\n<pre>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;!-- JSON Processing (JSR-353) --&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;dependency&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;groupId&gt;javax.json&lt;\/groupId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;artifactId&gt;javax.json-api&lt;\/artifactId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;version&gt;1.0&lt;\/version&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/dependency&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;dependency&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;groupId&gt;org.glassfish&lt;\/groupId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;artifactId&gt;javax.json&lt;\/artifactId&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;version&gt;1.0.2 &lt;\/version&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;\/dependency&gt;<\/pre>\n<p><strong>\u8a66\u3057\u305f\u30bd\u30fc\u30b9<\/strong><\/p>\n<pre>import javax.json.Json;\r\nimport javax.json.JsonObject;\r\nimport javax.json.stream.JsonParser;\r\n\r\npublic class FirstJson01 {\r\n\u00a0\u00a0 \u00a0public static void main(String[] args) {\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"\u751f\u6210\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0JsonObject model = Json.createObjectBuilder()\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"firstName\", \"Duke\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"lastName\", \"Java\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"age\", 18)\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"streetAddress\", \"100 Internet Dr\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"city\", \"JavaTown\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"state\", \"JA\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"postalCode\", \"12345\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .add(\"phoneNumbers\", Json.createArrayBuilder()\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(Json.createObjectBuilder()\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(\"type\", \"mobile\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(\"number\", \"111-111-1111\"))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(Json.createObjectBuilder()\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(\"type\", \"home\")\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 .add(\"number\", \"222-222-2222\")))\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 .build();\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0String text = model.toString();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(text);\r\n\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(\"\u89e3\u6790\");\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0StringReader sr = new StringReader(text);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0JsonParser parser = Json.createParser(sr);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0while(parser.hasNext()){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0JsonParser.<span style=\"color: #ff0000;\"><strong>Event<\/strong> <\/span>event = parser.next();\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0System.out.println(event);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0}\r\n\u00a0\u00a0 \u00a0}\r\n}<\/pre>\n<p>Event\u306e\u7a2e\u985e\u306fSTART_OBJECT\/END_OBJECT\u3001START_ARRAY\/END_ARRAY\u3001KEY_NAME\u3001VALUE_STRING\u3001VALUE_NUMBER\u3001VALUE_TRUE\u3001VALUE_FALSE\u3001VALUE_NULL\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Websocket\u3067\u8907\u6570\u306e\u30c7\u30fc\u30bf\u3092\u9001\u308d\u3046\u3068\u3057\u305f\u969b\u306b\u3001JavaEE7\u3067JSON Processing\u304c\u51fa\u3066\u305f\u306e\u3092\u601d\u3044\u51fa\u3057\u305f\u306e\u3067\u89e6\u3063\u3066\u307f\u305f\u3002 Arun\u3055\u3093\u306e\u30d6\u30ed\u30b0\u306b\u3042\u308b\u3088\u3046\u306bJSON\u3068Object\u9593\u306e\u30c7\u30fc\u30bf\u30d0\u30a4\u30f3\u30c7\u30a3\u30f3\u30b0\u307e\u3067 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[70,23,24,5],"class_list":["post-266","post","type-post","status-publish","format-standard","hentry","category-javaee","tag-javaee","tag-json-processing","tag-jsr-353","tag-maven"],"_links":{"self":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=266"}],"version-history":[{"count":6,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/266\/revisions"}],"predecessor-version":[{"id":283,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=\/wp\/v2\/posts\/266\/revisions\/283"}],"wp:attachment":[{"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rocher.kyoto.jp\/arbr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}