mkyong上记录了这一点,并在此处引用:
\n\nJackson 是一个高性能 JSON 处理器 Java 库。在本教程中,我们将向您展示如何使用 Jackson\xe2\x80\x99s 数据绑定将 Java 对象与 JSON 相互转换。
\n\n对于object/json转换,您需要了解以下两种方法:
\n\n//1. Convert Java object to JSON format\nObjectMapper mapper = new ObjectMapper();\nmapper.writeValue(new File("c:\\\\user.json"), user);\n//2. Convert JSON to Java object\nObjectMapper mapper = new ObjectMapper();\nUser user = mapper.readValue(new File("c:\\\\user.json"), User.class);\nRun Code Online (Sandbox Code Playgroud)\n\n注意:writeValue() 和 readValue() 都有许多重载方法来支持不同类型的输入和输出。请务必检查一下。
\n\nJackson 依赖项\nJackson 包含 6 个用于不同目的的独立 jar,请在此处查看。在这种情况下,您只需要 \xe2\x80\x9cjackson-mapper-asl\xe2\x80\x9d 来处理转换,只需在 pom.xml 中声明以下依赖项
\n\n<repositories>\n <repository>\n <id>codehaus</id>\n <url>http://repository.codehaus.org/org/codehaus</url>\n </repository>\n</repositories>\n\n<dependencies>\n <dependency>\n <groupId>org.codehaus.jackson</groupId>\n <artifactId>jackson-mapper-asl</artifactId>\n <version>1.8.5</version>\n </dependency>\n</dependencies>\nRun Code Online (Sandbox Code Playgroud)\n\n对于非 Maven 用户,只需在此处获取 Jackson 库即可。
波乔
\n\n一个用户对象,用一些值初始化。稍后使用 Jackson 将此对象转换为 JSON 或从 JSON 转换。
\n\npackage com.mkyong.core;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class User {\n\n private int age = 29;\n private String name = "mkyong";\n private List<String> messages = new ArrayList<String>() {\n {\n add("msg 1");\n add("msg 2");\n add("msg 3");\n }\n };\n\n //getter and setter methods\n\n @Override\n public String toString() {\n return "User [age=" + age + ", name=" + name + ", " +\n "messages=" + messages + "]";\n }\n}\nRun Code Online (Sandbox Code Playgroud)Java 对象转 JSON\n将 \xe2\x80\x9cuser\xe2\x80\x9d 对象转换为 JSON 格式的字符串,并将其保存到文件 \xe2\x80\x9cuser.json\xe2\x80\x9c 中。
\n\npackage com.mkyong.core;\n\nimport java.io.File;\nimport java.io.IOException;\nimport org.codehaus.jackson.JsonGenerationException;\nimport org.codehaus.jackson.map.JsonMappingException;\nimport org.codehaus.jackson.map.ObjectMapper;\n\npublic class JacksonExample {\n public static void main(String[] args) {\n\n User user = new User();\n ObjectMapper mapper = new ObjectMapper();\n\n try {\n\n // convert user object to json string, and save to a file\n mapper.writeValue(new File("c:\\\\user.json"), user);\n\n // display to console\n System.out.println(mapper.writeValueAsString(user));\n\n } catch (JsonGenerationException e) {\n\n e.printStackTrace();\n\n } catch (JsonMappingException e) {\n\n e.printStackTrace();\n\n } catch (IOException e) {\n\n e.printStackTrace();\n\n }\n\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\n输出
\n\n{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"}\nRun Code Online (Sandbox Code Playgroud)\n\n注意\n上面的 JSON 输出很难阅读。您可以通过启用漂亮的打印功能来增强它。
JSON 到 Java 对象
\n\n从文件 \xe2\x80\x9cuser.json\xe2\x80\x9c 中读取 JSON 字符串,并将其转换回 Java 对象。
\n\npackage com.mkyong.core;\n\nimport java.io.File;\nimport java.io.IOException;\nimport org.codehaus.jackson.JsonGenerationException;\nimport org.codehaus.jackson.map.JsonMappingException;\nimport org.codehaus.jackson.map.ObjectMapper;\n\npublic class JacksonExample {\n public static void main(String[] args) {\n\n ObjectMapper mapper = new ObjectMapper();\n\n try {\n\n // read from file, convert it to user class\n User user = mapper.readValue(new File("c:\\\\user.json"), User.class);\n\n // display to console\n System.out.println(user);\n\n } catch (JsonGenerationException e) {\n\n e.printStackTrace();\n\n } catch (JsonMappingException e) {\n\n e.printStackTrace();\n\n } catch (IOException e) {\n\n e.printStackTrace();\n\n }\n\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)输出
\n\n User [age=29, name=mkyong, messages=[msg 1, msg 2, msg 3]]\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
64461 次 |
| 最近记录: |