{"id":639,"date":"2024-01-17T20:48:05","date_gmt":"2023-11-22T06:58:17","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/index.php\/2023\/11\/30\/java-json-%e7%a4%ba%e4%be%8b\/"},"modified":"2025-08-03T00:26:09","modified_gmt":"2025-08-02T16:26:09","slug":"java-json-%e7%a4%ba%e4%be%8b","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/","title":{"rendered":"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3"},"content":{"rendered":"<p>\u6b22\u8fce\u6765\u5230Java JSON\u793a\u4f8b\u6559\u7a0b\u3002JSON\uff08JavaScript\u5bf9\u8c61\u8868\u793a\u6cd5\uff09\u662f\u4e00\u79cd\u57fa\u4e8e\u6587\u672c\u7684\u8f7b\u91cf\u7ea7\u6570\u636e\u4ea4\u6362\u683c\u5f0f\uff0c\u7528\u4e8e\u751f\u6210\u6613\u4e8e\u9605\u8bfb\u7684\u7ed3\u6784\u5316\u6570\u636e\u3002JSON\u4ee5\u952e\u503c\u5bf9\u7684\u5f62\u5f0f\u8868\u793a\u5bf9\u8c61\u6570\u636e\uff0c\u652f\u6301\u5d4c\u5957\u7684JSON\u5bf9\u8c61\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u79cd\u7b80\u4fbf\u7684\u65b9\u5f0f\u6765\u8868\u793a\u6570\u7ec4\u3002<\/p>\n<h2>Java JSON\u6982\u8ff0<\/h2>\n<p>Java JSON \u53ef\u4ee5\u88ab\u7406\u89e3\u4e3a &#8220;Java\u7684JSON&#8221; \u6216\u8005 &#8220;Java\u4e2d\u7684JSON&#8221; \u3002JSON \u5728 Web \u5e94\u7528\u6216\u4f5c\u4e3a\u670d\u52a1\u5668\u54cd\u5e94\u4e2d\u88ab\u5e7f\u6cdb\u4f7f\u7528\uff0c\u56e0\u4e3a\u5b83\u6bd4 XML \u66f4\u8f7b\u91cf\u4e14\u66f4\u7d27\u51d1\u3002JSON \u5bf9\u8c61\u6613\u4e8e\u9605\u8bfb\u548c\u7f16\u5199\uff0c\u5927\u591a\u6570\u6280\u672f\u90fd\u63d0\u4f9b\u5bf9 JSON \u5bf9\u8c61\u7684\u652f\u6301\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48 Java Web \u670d\u52a1\u4e2d\u7684 JSON \u975e\u5e38\u6d41\u884c\u3002JSR353 \u6700\u7ec8\u7eb3\u5165 Java EE 7\uff0c\u5b83\u662f Java \u7684 JSON \u5904\u7406 API\u3002jsonp \u662f Java JSON \u5904\u7406 API \u7684\u53c2\u8003\u5b9e\u73b0\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u6dfb\u52a0\u4ee5\u4e0b\u4f9d\u8d56\u9879\u5728 Maven \u9879\u76ee\u4e2d\u4f7f\u7528\u5b83\u3002<\/p>\n<pre class=\"post-pre\"><code>&lt;dependency&gt;\r\n\t&lt;groupId&gt;org.glassfish&lt;\/groupId&gt;\r\n  \t&lt;artifactId&gt;javax.json&lt;\/artifactId&gt;\r\n  \t&lt;version&gt;1.0.2&lt;\/version&gt;\r\n&lt;\/dependency&gt;\r\n<\/code><\/pre>\n<p>\u5982\u679c\u60a8\u4f7f\u7528\u7684\u662fGlassFish 4.0\uff0c\u5219\u53ef\u4ee5\u5c06\u8303\u56f4\u4fdd\u6301\u4e3aprovided\uff0c\u56e0\u4e3a\u5b83\u5df2\u7ecf\u5305\u542b\u5728\u670d\u52a1\u5668\u4e2d\u3002JSON API\u4e3aJSON\u5904\u7406\u63d0\u4f9b\u4e86\u4e24\u79cd\u65b9\u6cd5\uff1a<\/p>\n<ol>\n<li>\u5bf9\u8c61\u6a21\u578b API &#8211; \u5b83\u7c7b\u4f3c\u4e8e DOM \u89e3\u6790\u5668\uff0c\u9002\u7528\u4e8e\u5c0f\u578b\u5bf9\u8c61\u3002<\/li>\n<li>\u6d41\u5f0f API &#8211; \u5b83\u7c7b\u4f3c\u4e8e StaX \u89e3\u6790\u5668\uff0c\u9002\u7528\u4e8e\u5927\u578b\u5bf9\u8c61\uff0c\u60a8\u4e0d\u5e0c\u671b\u5c06\u6574\u4e2a\u5bf9\u8c61\u4fdd\u5b58\u5728\u5185\u5b58\u4e2d\u3002<\/li>\n<\/ol>\n<p>Java JSON API\u7684\u4e00\u4e9b\u91cd\u8981\u63a5\u53e3\u662f\uff1a<\/p>\n<ol>\n<li>javax.json.JsonReader: \u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u7c7b\u6765\u8bfb\u53d6JSON\u5bf9\u8c61\u6216\u6570\u7ec4\u4e3aJsonObject\u3002\u6211\u4eec\u53ef\u4ee5\u4eceJson\u7c7b\u6216JsonReaderFactory\u83b7\u5f97JsonReader\u3002<\/li>\n<li>javax.json.JsonWriter: \u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u7c7b\u5c06JSON\u5bf9\u8c61\u5199\u5165\u8f93\u51fa\u6d41\u3002<\/li>\n<li>javax.json.stream.JsonParser: \u8fd9\u4e2a\u7c7b\u4f5c\u4e3a\u4e00\u4e2a\u62c9\u52a8\u5f0f\u89e3\u6790\u5668\uff0c\u5728\u8bfb\u53d6JSON\u5bf9\u8c61\u65f6\u63d0\u4f9b\u6d41\u5f0f\u652f\u6301\u3002<\/li>\n<li>javax.json.stream.JsonGenerator: \u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e2a\u7c7b\u4ee5\u6d41\u5f0f\u65b9\u5f0f\u5c06JSON\u5bf9\u8c61\u5199\u5165\u8f93\u51fa\u6e90\u3002<\/li>\n<li>javax.json.Json: \u8fd9\u4e2a\u7c7b\u662f\u7528\u4e8e\u521b\u5efaJSON\u5904\u7406\u5bf9\u8c61\u7684\u5de5\u5382\u7c7b\u3002\u8be5\u7c7b\u63d0\u4f9b\u4e86\u521b\u5efa\u8fd9\u4e9b\u5bf9\u8c61\u53ca\u5176\u5bf9\u5e94\u5de5\u5382\u7684\u6700\u5e38\u7528\u65b9\u6cd5\u3002\u5de5\u5382\u7c7b\u63d0\u4f9b\u4e86\u521b\u5efa\u8fd9\u4e9b\u5bf9\u8c61\u7684\u5404\u79cd\u65b9\u5f0f\u3002<\/li>\n<li>javax.json.JsonObject: JsonObject\u4ee3\u8868\u4e00\u4e2a\u4e0d\u53ef\u53d8\u7684JSON\u5bf9\u8c61\u503c\u3002<\/li>\n<\/ol>\n<p>\u8ba9\u6211\u4eec\u4f7f\u7528\u7b80\u5355\u7684\u7a0b\u5e8f\u6765\u4e86\u89e3Java JSON API\u7684\u4f7f\u7528\uff0c\u6211\u4eec\u6709\u4e00\u4e2aJSON\u5bf9\u8c61\u5b58\u50a8\u5728\u540d\u4e3aemployee.txt\u7684\u6587\u4ef6\u4e2d\uff1a<\/p>\n<pre class=\"post-pre\"><code>{\r\n\t\"id\":123,\r\n\t\"name\":\"Pankaj Kumar\",\r\n\t\"permanent\":true,\r\n\t\"address\":{\r\n\t\t\t\"street\":\"El Camino Real\",\r\n\t\t\t\"city\":\"San Jose\",\r\n\t\t\t\"zipcode\":95014\r\n\t\t},\r\n\t\"phoneNumbers\":[9988664422, 1234567890],\r\n\t\"role\":\"Developer\"\r\n}\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u6709Java bean\u7c7b\uff0c\u5b83\u4eec\u8868\u793a\u4e86\u4e0a\u8ff0\u7684JSON\u683c\u5f0f\uff1a<\/p>\n<pre class=\"post-pre\"><code>package com.Olivia.model;\r\n\r\nimport java.util.Arrays;\r\n\r\npublic class Employee {\r\n\r\n\tprivate int id;\r\n\tprivate String name;\r\n\tprivate boolean permanent;\r\n\tprivate Address address;\r\n\tprivate long[] phoneNumbers;\r\n\tprivate String role;\r\n\t\r\n\tpublic int getId() {\r\n\t\treturn id;\r\n\t}\r\n\tpublic void setId(int id) {\r\n\t\tthis.id = id;\r\n\t}\r\n\tpublic String getName() {\r\n\t\treturn name;\r\n\t}\r\n\tpublic void setName(String name) {\r\n\t\tthis.name = name;\r\n\t}\r\n\tpublic boolean isPermanent() {\r\n\t\treturn permanent;\r\n\t}\r\n\tpublic void setPermanent(boolean permanent) {\r\n\t\tthis.permanent = permanent;\r\n\t}\r\n\tpublic Address getAddress() {\r\n\t\treturn address;\r\n\t}\r\n\tpublic void setAddress(Address address) {\r\n\t\tthis.address = address;\r\n\t}\r\n\tpublic long[] getPhoneNumbers() {\r\n\t\treturn phoneNumbers;\r\n\t}\r\n\tpublic void setPhoneNumbers(long[] phoneNumbers) {\r\n\t\tthis.phoneNumbers = phoneNumbers;\r\n\t}\r\n\tpublic String getRole() {\r\n\t\treturn role;\r\n\t}\r\n\tpublic void setRole(String role) {\r\n\t\tthis.role = role;\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic String toString(){\r\n\t\tStringBuilder sb = new StringBuilder();\r\n\t\tsb.append(\"***** Employee Details *****\\n\");\r\n\t\tsb.append(\"ID=\"+getId()+\"\\n\");\r\n\t\tsb.append(\"Name=\"+getName()+\"\\n\");\r\n\t\tsb.append(\"Permanent=\"+isPermanent()+\"\\n\");\r\n\t\tsb.append(\"Role=\"+getRole()+\"\\n\");\r\n\t\tsb.append(\"Phone Numbers=\"+Arrays.toString(getPhoneNumbers())+\"\\n\");\r\n\t\tsb.append(\"Address=\"+getAddress());\r\n\t\tsb.append(\"\\n*****************************\");\r\n\t\t\r\n\t\treturn sb.toString();\r\n\t}\r\n}\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>package com.Olivia.model;\r\n\r\npublic class Address {\r\n\t\r\n\tprivate String street;\r\n\tprivate String city;\r\n\tprivate int zipcode;\r\n\t\r\n\tpublic String getStreet() {\r\n\t\treturn street;\r\n\t}\r\n\tpublic void setStreet(String street) {\r\n\t\tthis.street = street;\r\n\t}\r\n\tpublic String getCity() {\r\n\t\treturn city;\r\n\t}\r\n\tpublic void setCity(String city) {\r\n\t\tthis.city = city;\r\n\t}\r\n\tpublic int getZipcode() {\r\n\t\treturn zipcode;\r\n\t}\r\n\tpublic void setZipcode(int zipcode) {\r\n\t\tthis.zipcode = zipcode;\r\n\t}\r\n\t\r\n\t@Override\r\n\tpublic String toString(){\r\n\t\treturn getStreet() + \", \"+getCity()+\", \"+getZipcode();\r\n\t}\r\n}\r\n<\/code><\/pre>\n<p>\u6211\u5df2\u7ecf\u91cd\u5199\u4e86toString()\u65b9\u6cd5\uff0c\u4ee5\u8fd4\u56de\u4eba\u7c7b\u53ef\u8bfb\u7684\u5b57\u7b26\u4e32\u8868\u793a\u5f62\u5f0f\uff0c\u8fd9\u5c06\u5728\u6211\u4eec\u7684JSON\u5b9e\u73b0\u7c7b\u4e2d\u4f7f\u7528\u3002<\/p>\n<h3>Java JSON \u8bfb\u53d6\u793a\u4f8b<\/h3>\n<p>\u8fd9\u662f\u6587\u7ae0\u300aJava JSON \u793a\u4f8b\u300b\u7684\u7b2c2\u90e8\u5206\uff08\u51713\u90e8\u5206\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.Olivia.json;\r\n\r\nimport java.io.FileInputStream;\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\n\r\nimport javax.json.Json;\r\nimport javax.json.JsonArray;\r\nimport javax.json.JsonObject;\r\nimport javax.json.JsonReader;\r\nimport javax.json.JsonValue;\r\n\r\nimport com.Olivia.model.Address;\r\nimport com.Olivia.model.Employee;\r\n\r\npublic class EmployeeJSONReader {\r\n\r\n\tpublic static final String JSON_FILE=\"employee.txt\";\r\n\t\r\n\tpublic static void main(String[] args) throws IOException {\r\n\t\tInputStream fis = new FileInputStream(JSON_FILE);\r\n\t\t\r\n\t\t\/\/\u521b\u5efaJsonReader\u5bf9\u8c61\r\n\t\tJsonReader jsonReader = Json.createReader(fis);\r\n\t\t\r\n\t\t\/**\r\n\t\t * \u6211\u4eec\u4e5f\u53ef\u4ee5\u4ece\u5de5\u5382\u521b\u5efaJsonReader\r\n\t\tJsonReaderFactory factory = Json.createReaderFactory(null);\r\n\t\tjsonReader = factory.createReader(fis);\r\n\t\t*\/\r\n\t\t\r\n\t\t\/\/\u4eceJsonReader\u83b7\u53d6JsonObject\r\n\t\tJsonObject jsonObject = jsonReader.readObject();\r\n\t\t\r\n\t\t\/\/\u73b0\u5728\u6211\u4eec\u53ef\u4ee5\u5173\u95edIO\u8d44\u6e90\u548cJsonReader\r\n\t\tjsonReader.close();\r\n\t\tfis.close();\r\n\t\t\r\n\t\t\/\/\u4eceJsonObject\u68c0\u7d22\u6570\u636e\u5e76\u521b\u5efaEmployee bean\r\n\t\tEmployee emp = new Employee();\r\n\t\t\r\n\t\temp.setId(jsonObject.getInt(\"id\"));\r\n\t\temp.setName(jsonObject.getString(\"name\"));\r\n\t\temp.setPermanent(jsonObject.getBoolean(\"permanent\"));\r\n\t\temp.setRole(jsonObject.getString(\"role\"));\r\n\t\t\r\n\t\t\/\/\u4ecejson\u8bfb\u53d6\u6570\u7ec4\r\n\t\tJsonArray jsonArray = jsonObject.getJsonArray(\"phoneNumbers\");\r\n\t\tlong[] numbers = new long[jsonArray.size()];\r\n\t\tint index = 0;\r\n\t\tfor(JsonValue value : jsonArray){\r\n\t\t\tnumbers[index++] = Long.parseLong(value.toString());\r\n\t\t}\r\n\t\temp.setPhoneNumbers(numbers);\r\n\t\t\r\n\t\t\/\/\u4ecejson\u5bf9\u8c61\u8bfb\u53d6\u5185\u90e8\u5bf9\u8c61\r\n\t\tJsonObject innerJsonObject = jsonObject.getJsonObject(\"address\");\r\n\t\tAddress address = new Address();\r\n\t\taddress.setStreet(innerJsonObject.getString(\"street\"));\r\n\t\taddress.setCity(innerJsonObject.getString(\"city\"));\r\n\t\taddress.setZipcode(innerJsonObject.getInt(\"zipcode\"));\r\n\t\temp.setAddress(address);\r\n\t\t\r\n\t\t\/\/\u6253\u5370\u5458\u5de5bean\u4fe1\u606f\r\n\t\tSystem.out.println(emp);\r\n\t\t\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u6267\u884c\u8fd9\u4e2a\u7a0b\u5e8f\u975e\u5e38\u76f4\u89c2\uff0c\u611f\u89c9\u5c31\u50cf\u4eceHashMap\u83b7\u53d6\u53c2\u6570\u4e00\u6837\u3002JsonReaderFactory\u5b9e\u73b0\u4e86\u5de5\u5382\u8bbe\u8ba1\u6a21\u5f0f\u3002\u5f53\u6211\u4eec\u8fd0\u884c\u4e0a\u8ff0\u7a0b\u5e8f\u540e\uff0c\u4f1a\u5f97\u5230\u4ee5\u4e0b\u8f93\u51fa\u3002<\/p>\n<pre class=\"post-pre\"><code>***** \u5458\u5de5\u8be6\u7ec6\u4fe1\u606f *****\r\nID=123\r\nName=Pankaj Kumar\r\nPermanent=true\r\nRole=Developer\r\nPhone Numbers=[9988664422, 1234567890]\r\nAddress=El Camino Real, San Jose, 95014\r\n*****************************\r\n<\/code><\/pre>\n<h3>Java JSON \u5199\u5165\u793a\u4f8b<\/h3>\n<pre class=\"post-pre\"><code>package com.Olivia.json;\r\n\r\nimport java.io.FileNotFoundException;\r\nimport java.io.FileOutputStream;\r\nimport java.io.OutputStream;\r\n\r\nimport javax.json.Json;\r\nimport javax.json.JsonArrayBuilder;\r\nimport javax.json.JsonObject;\r\nimport javax.json.JsonObjectBuilder;\r\nimport javax.json.JsonWriter;\r\n\r\nimport com.Olivia.model.Address;\r\nimport com.Olivia.model.Employee;\r\n\r\npublic class EmployeeJSONWriter {\r\n\r\n\tpublic static void main(String[] args) throws FileNotFoundException {\r\n\r\n\t\tEmployee emp = createEmployee();\r\n\r\n\t\tJsonObjectBuilder empBuilder = Json.createObjectBuilder();\r\n\t\tJsonObjectBuilder addressBuilder = Json.createObjectBuilder();\r\n\t\tJsonArrayBuilder phoneNumBuilder = Json.createArrayBuilder();\r\n\r\n\t\tfor (long phone : emp.getPhoneNumbers()) {\r\n\t\t\tphoneNumBuilder.add(phone);\r\n\t\t}\r\n\t\t\r\n\t\taddressBuilder.add(\"street\", emp.getAddress().getStreet())\r\n\t\t\t\t\t.add(\"city\", emp.getAddress().getCity())\r\n\t\t\t\t\t\t.add(\"zipcode\", emp.getAddress().getZipcode());\r\n\t\t\r\n\t\tempBuilder.add(\"id\", emp.getId())\r\n\t\t\t\t\t.add(\"name\", emp.getName())\r\n\t\t\t\t\t\t.add(\"permanent\", emp.isPermanent())\r\n\t\t\t\t\t\t\t.add(\"role\", emp.getRole());\r\n\t\t\r\n\t\tempBuilder.add(\"phoneNumbers\", phoneNumBuilder);\r\n\t\tempBuilder.add(\"address\", addressBuilder);\r\n\t\t\r\n\t\tJsonObject empJsonObject = empBuilder.build();\r\n\t\t\r\n\t\tSystem.out.println(\"\u5458\u5de5JSON\u5b57\u7b26\u4e32\\n\"+empJsonObject);\r\n\t\t\r\n\t\t\/\/\u5199\u5165\u6587\u4ef6\r\n\t\tOutputStream os = new FileOutputStream(\"emp.txt\");\r\n\t\tJsonWriter jsonWriter = Json.createWriter(os);\r\n\t\t\/**\r\n\t\t * \u6211\u4eec\u4e5f\u53ef\u4ee5\u4eceJsonWriterFactory\u83b7\u53d6JsonWriter\r\n\t\tJsonWriterFactory factory = Json.createWriterFactory(null);\r\n\t\tjsonWriter = factory.createWriter(os);\r\n\t\t*\/\r\n\t\tjsonWriter.writeObject(empJsonObject);\r\n\t\tjsonWriter.close();\r\n\t}\r\n\t\r\n\r\n\tpublic static Employee createEmployee() {\r\n\r\n\t\tEmployee emp = new Employee();\r\n\t\temp.setId(100);\r\n\t\temp.setName(\"David\");\r\n\t\temp.setPermanent(false);\r\n\t\temp.setPhoneNumbers(new long[] { 123456, 987654 });\r\n\t\temp.setRole(\"Manager\");\r\n\r\n\t\tAddress add = new Address();\r\n\t\tadd.setCity(\"Bangalore\");\r\n\t\tadd.setStreet(\"BTM 1st Stage\");\r\n\t\tadd.setZipcode(560100);\r\n\t\temp.setAddress(add);\r\n\r\n\t\treturn emp;\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u5f53\u6211\u4eec\u8fd0\u884c\u4e0a\u8ff0\u5e94\u7528\u7a0b\u5e8f\u65f6\uff0c\u4f1a\u5f97\u5230\u4ee5\u4e0b\u54cd\u5e94\u3002<\/p>\n<pre class=\"post-pre\"><code>\u5458\u5de5JSON\u5b57\u7b26\u4e32\r\n{\"id\":100,\"name\":\"David\",\"permanent\":false,\"role\":\"Manager\",\"phoneNumbers\":[123456,987654],\"address\":{\"street\":\"BTM 1st Stage\",\"city\":\"Bangalore\",\"zipcode\":560100}}\r\n<\/code><\/pre>\n<p>JSON\u5bf9\u8c61\u4e5f\u88ab\u4fdd\u5b58\u5728emp.txt\u6587\u4ef6\u4e2d\u3002JsonObjectBuilder\u5b9e\u73b0\u4e86\u5efa\u9020\u8005\u6a21\u5f0f\uff0c\u4f7f\u5176\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\u3002<\/p>\n<h3>Java JSON \u89e3\u6790\u5668\u793a\u4f8b<\/h3>\n<p>\u8fd9\u662f\u6587\u7ae0\u300aJava JSON \u793a\u4f8b\u300b\u7684\u7b2c3\u90e8\u5206\uff08\u51713\u90e8\u5206\uff09\u3002<\/p>\n<p>\u5185\u5bb9\u7247\u6bb5\uff1aJava\u7684JsonParser\u662f\u4e00\u4e2a\u62c9\u5f0f\u89e3\u6790\u5668\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7next()\u65b9\u6cd5\u8bfb\u53d6\u4e0b\u4e00\u4e2a\u5143\u7d20\uff0c\u8be5\u65b9\u6cd5\u8fd4\u56de\u4e00\u4e2aEvent\u5bf9\u8c61\u3002javax.json.stream.JsonParser.Event\u662f\u4e00\u4e2a\u679a\u4e3e\u7c7b\u578b\uff0c\u4f7f\u5176\u7c7b\u578b\u5b89\u5168\u4e14\u6613\u4e8e\u4f7f\u7528\u3002\u6211\u4eec\u53ef\u4ee5\u5728switch case\u8bed\u53e5\u4e2d\u4f7f\u7528\u5b83\u6765\u8bbe\u7f6e\u6211\u4eec\u7684Java bean\u5c5e\u6027\u3002<\/p>\n<pre class=\"post-pre\"><code>package com.Olivia.json;\r\n\r\nimport java.io.FileInputStream;\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\n\r\nimport javax.json.Json;\r\nimport javax.json.stream.JsonParser;\r\nimport javax.json.stream.JsonParser.Event;\r\n\r\nimport com.Olivia.model.Address;\r\nimport com.Olivia.model.Employee;\r\n\r\npublic class EmployeeJSONParser {\r\n\r\n\tpublic static final String FILE_NAME = \"employee.txt\";\r\n\r\n\tpublic static void main(String[] args) throws IOException {\r\n\t\tInputStream fis = new FileInputStream(FILE_NAME);\r\n\r\n\t\tJsonParser jsonParser = Json.createParser(fis);\r\n\r\n\t\t\/**\r\n\t\t * \u6211\u4eec\u4e5f\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u4eceJsonParserFactory\u521b\u5efaJsonParser\r\n\t\t * JsonParserFactory factory = Json.createParserFactory(null);\r\n\t\t * jsonParser = factory.createParser(fis);\r\n\t\t *\/\r\n\r\n\t\tEmployee emp = new Employee();\r\n\t\tAddress address = new Address();\r\n\t\tString keyName = null;\r\n\t\tList&lt;Long&gt; phoneNums = new ArrayList&lt;Long&gt;();\r\n\t\t\r\n\t\twhile (jsonParser.hasNext()) {\r\n\t\t\tEvent event = jsonParser.next();\r\n\t\t\tswitch (event) {\r\n\t\t\tcase KEY_NAME:\r\n\t\t\t\tkeyName = jsonParser.getString();\r\n\t\t\t\tbreak;\r\n\t\t\tcase VALUE_STRING:\r\n\t\t\t\tsetStringValues(emp, address, keyName, jsonParser.getString());\r\n\t\t\t\tbreak;\r\n\t\t\tcase VALUE_NUMBER:\r\n\t\t\t\tsetNumberValues(emp, address, keyName, jsonParser.getLong(), phoneNums);\r\n\t\t\t\tbreak;\r\n\t\t\tcase VALUE_FALSE:\r\n\t\t\t\tsetBooleanValues(emp, address, keyName, false);\r\n\t\t\t\tbreak;\r\n\t\t\tcase VALUE_TRUE:\r\n\t\t\t\tsetBooleanValues(emp, address, keyName, true);\r\n\t\t\t\tbreak;\r\n\t\t\tcase VALUE_NULL:\r\n\t\t\t\t\/\/ \u4e0d\u8bbe\u7f6e\u4efb\u4f55\u5185\u5bb9\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\t\/\/ \u6211\u4eec\u4e0d\u67e5\u627e\u5176\u4ed6\u4e8b\u4ef6\r\n\t\t\t}\r\n\t\t}\r\n\t\temp.setAddress(address);\r\n\t\tlong[] nums = new long[phoneNums.size()];\r\n\t\tint index = 0;\r\n\t\tfor(Long l :phoneNums){\r\n\t\t\tnums[index++] = l;\r\n\t\t}\r\n\t\temp.setPhoneNumbers(nums);\r\n\t\t\r\n\t\tSystem.out.println(emp);\r\n\t\t\r\n\t\t\/\/\u5173\u95ed\u8d44\u6e90\r\n\t\tfis.close();\r\n\t\tjsonParser.close();\r\n\t}\r\n\r\n\tprivate static void setNumberValues(Employee emp, Address address,\r\n\t\t\tString keyName, long value, List&lt;Long&gt; phoneNums) {\r\n\t\tswitch(keyName){\r\n\t\tcase \"zipcode\":\r\n\t\t\taddress.setZipcode((int)value);\r\n\t\t\tbreak;\r\n\t\tcase \"id\":\r\n\t\t\temp.setId((int) value);\r\n\t\t\tbreak;\r\n\t\tcase \"phoneNumbers\":\r\n\t\t\tphoneNums.add(value);\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tSystem.out.println(\"\u672a\u77e5\u5143\u7d20\uff0c\u952e=\"+keyName);\t\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static void setBooleanValues(Employee emp, Address address,\r\n\t\t\tString key, boolean value) {\r\n\t\tif(\"permanent\".equals(key)){\r\n\t\t\temp.setPermanent(value);\r\n\t\t}else{\r\n\t\t\tSystem.out.println(\"\u672a\u77e5\u5143\u7d20\uff0c\u952e=\"+key);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate static void setStringValues(Employee emp, Address address,\r\n\t\t\tString key, String value) {\r\n\t\tswitch(key){\r\n\t\tcase \"name\":\r\n\t\t\temp.setName(value);\r\n\t\t\tbreak;\r\n\t\tcase \"role\":\r\n\t\t\temp.setRole(value);\r\n\t\t\tbreak;\r\n\t\tcase \"city\":\r\n\t\t\taddress.setCity(value);\r\n\t\t\tbreak;\r\n\t\tcase \"street\":\r\n\t\t\taddress.setStreet(value);\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\tSystem.out.println(\"\u672a\u77e5\u952e=\"+key);\r\n\t\t\t\t\r\n\t\t}\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>\u5f53\u6211\u4eec\u9700\u8981\u7f16\u5199\u903b\u8f91\u6765\u89e3\u6790\u6570\u636e\u65f6\uff0c\u4e3b\u8981\u590d\u6742\u6027\u5c31\u51fa\u73b0\u4e86\uff0c\u6709\u65f6\u5019\u53ef\u80fd\u4f1a\u53d8\u5f97\u975e\u5e38\u590d\u6742\u3002\u7531\u4e8e\u6211\u4eec\u4f7f\u7528JsonReader\u8bfb\u53d6\u76f8\u540c\u7684\u6587\u4ef6\uff0c\u56e0\u6b64\u8f93\u51fa\u4e0eEmployeeJsonReader\u7a0b\u5e8f\u7684\u8f93\u51fa\u76f8\u540c\u3002<\/p>\n<h3>Java \u7684 JsonGenerator \u793a\u4f8b<\/h3>\n<pre class=\"post-pre\"><code>package com.Olivia.json;\r\n\r\nimport java.io.FileOutputStream;\r\nimport java.io.IOException;\r\nimport java.io.OutputStream;\r\n\r\nimport javax.json.Json;\r\nimport javax.json.stream.JsonGenerator;\r\n\r\nimport com.Olivia.model.Employee;\r\n\r\npublic class EmployeeJSONGenerator {\r\n\r\n\tpublic static void main(String[] args) throws IOException {\r\n\t\tOutputStream fos = new FileOutputStream(\"emp_stream.txt\");\r\n\t\tJsonGenerator jsonGenerator = Json.createGenerator(fos);\r\n\t\t\/**\r\n\t\t * \u6211\u4eec\u4e5f\u53ef\u4ee5\u4eceFactory\u7c7b\u83b7\u53d6JsonGenerator\r\n\t\t * JsonGeneratorFactory factory = Json.createGeneratorFactory(null);\r\n\t\t * jsonGenerator = factory.createGenerator(fos);\r\n\t\t *\/\r\n\t\t\r\n\t\tEmployee emp = EmployeeJSONWriter.createEmployee();\r\n\t\tjsonGenerator.writeStartObject(); \/\/ {\r\n\t\tjsonGenerator.write(\"id\", emp.getId()); \/\/ \"id\":123\r\n\t\tjsonGenerator.write(\"name\", emp.getName());\r\n\t\tjsonGenerator.write(\"role\", emp.getRole());\r\n\t\tjsonGenerator.write(\"permanent\", emp.isPermanent());\r\n\t\t\r\n\t\tjsonGenerator.writeStartObject(\"address\") \/\/\u5f00\u59cbaddress\u5bf9\u8c61\r\n\t\t\t.write(\"street\", emp.getAddress().getStreet())\r\n\t\t\t.write(\"city\",emp.getAddress().getCity())\r\n\t\t\t.write(\"zipcode\",emp.getAddress().getZipcode())\r\n\t\t\t.writeEnd(); \/\/\u7ed3\u675faddress\u5bf9\u8c61\r\n\t\t\r\n\t\tjsonGenerator.writeStartArray(\"phoneNumbers\"); \/\/\u5f00\u59cb\u7535\u8bdd\u53f7\u7801\u6570\u7ec4\r\n\t\tfor(long num : emp.getPhoneNumbers()){\r\n\t\t\tjsonGenerator.write(num);\r\n\t\t}\r\n\t\tjsonGenerator.writeEnd(); \/\/ \u7ed3\u675f\u7535\u8bdd\u53f7\u7801\u6570\u7ec4\r\n\t\tjsonGenerator.writeEnd(); \/\/ }\r\n\t\t\r\n\t\tjsonGenerator.close();\r\n\t\t\r\n\t}\r\n\r\n}\r\n<\/code><\/pre>\n<p>Json\u751f\u6210\u5668\u975e\u5e38\u6613\u4e8e\u4f7f\u7528\uff0c\u5728\u5904\u7406\u5927\u6570\u636e\u65f6\u5177\u6709\u826f\u597d\u7684\u6027\u80fd\u3002\u4ee5\u4e0a\u5c31\u662f\u5173\u4e8eJava JSON\u5904\u7406API\u7684\u5168\u90e8\u5185\u5bb9\u3002\u6211\u4eec\u5b66\u4e60\u4e86Java JSON\u89e3\u6790\u5668\u3001\u8bfb\u53d6\u548c\u5199\u5165\u7684\u793a\u4f8b\u3002\u60a8\u53ef\u4ee5\u4ece\u4e0b\u9762\u7684\u94fe\u63a5\u4e0b\u8f7dJava\u9879\u76ee\u5e76\u8fdb\u884c\u5b9e\u9a8c\u3002<\/p>\n<p>\u4e0b\u8f7dJava JSON\u9879\u76ee<\/p>\n<p>\u53c2\u8003\u8d44\u6599\uff1aJSONLint &#8211; \u4e00\u4e2a\u7528\u4e8e\u9a8c\u8bc1JSON\u6570\u636e\u7684\u4f18\u79c0\u7f51\u7edc\u5de5\u5177\uff0cJSON\u5904\u7406\u53c2\u8003\u5b9e\u73b0JSR353 JCP\u9875\u9762\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6b22\u8fce\u6765\u5230Java JSON\u793a\u4f8b\u6559\u7a0b\u3002JSON\uff08JavaScript\u5bf9\u8c61\u8868\u793a\u6cd5\uff09\u662f\u4e00\u79cd\u57fa\u4e8e\u6587\u672c\u7684\u8f7b\u91cf\u7ea7\u6570\u636e\u4ea4\u6362\u683c [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[189,1418,677,1059,307],"class_list":{"0":"post-639","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-uncategorized","7":"tag-java","9":"tag-json","11":"tag-307"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-\u793a\u4f8b\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3\" \/>\n<meta property=\"og:description\" content=\"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-\u793a\u4f8b\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-22T06:58:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-02T16:26:09+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/\",\"name\":\"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-22T06:58:17+00:00\",\"dateModified\":\"2025-08-02T16:26:09+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"description\":\"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3 - Blog - Silicon Cloud","description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-\u793a\u4f8b\/","og_locale":"zh_CN","og_type":"article","og_title":"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3","og_description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-\u793a\u4f8b\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-22T06:58:17+00:00","article_modified_time":"2025-08-02T16:26:09+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/","name":"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-22T06:58:17+00:00","dateModified":"2025-08-02T16:26:09+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"description":"\u672c\u6559\u7a0b\u8be6\u7ec6\u4ecb\u7ecdJava\u4e2dJSON\u7684\u5904\u7406\u65b9\u6cd5\uff0c\u5305\u62ecJSON\u89e3\u6790\u3001\u751f\u6210\u548c\u8f6c\u6362\u7684\u5b8c\u6574\u793a\u4f8b\u3002\u9002\u5408Java\u5f00\u53d1\u8005\u5b66\u4e60\u5982\u4f55\u5728\u9879\u76ee\u4e2d\u4f7f\u7528JSON\uff0c\u4ece\u57fa\u7840\u6982\u5ff5\u5230\u5b9e\u9645\u5e94\u7528\uff0c\u63d0\u4f9b\u6e05\u6670\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u89e3\u91ca\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"Java JSON\u5904\u7406\u5b8c\u6574\u6559\u7a0b\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u4f8b\u8be6\u89e3"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java-json-%e7%a4%ba%e4%be%8b\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=639"}],"version-history":[{"count":4,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/639\/revisions"}],"predecessor-version":[{"id":110412,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/639\/revisions\/110412"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}