参考资料:
首先添加maven依赖(版本用最新的):
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
然后是POJO对象:
package jackson.pojo; import java.util.ArrayList; import java.util.List; public class User { private int age = 29; private String name = "mkyong"; private List<String> messages = new ArrayList<String>() { private static final long serialVersionUID = 1L; { add("msg 1"); add("msg 2"); add("msg 3"); } }; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<String> getMessages() { return messages; } public void setMessages(List<String> messages) { this.messages = messages; } }
接下来,先测试JAVA对象-->JSON:
package jackson.tojson; import jackson.pojo.User; import java.io.File; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) throws Exception { User user = new User(); ObjectMapper mapper = new ObjectMapper(); // convert user object to json string, and save to a file mapper.writeValue(new File("e:\\user.json"), user); // display to console System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user)); } }
然后测试JSON->JAVA对象:
package jackson.fromjson; import jackson.pojo.User; import java.io.File; import org.codehaus.jackson.map.ObjectMapper; public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper(); // read from file, convert it to user class User user = mapper.readValue(new File("e:\\user.json"), User.class); // display to console System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user)); } }
JSON->Map:
package jackson.json2map; import java.util.HashMap; import java.util.Map; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; public class JsonMapExample { public static void main(String[] args) { String json = "{\"name\":\"mkyong\", \"age\":\"29\"}"; Map<String,String> map = new HashMap<String,String>(); ObjectMapper mapper = new ObjectMapper(); try { //convert JSON string to Map map = mapper.readValue(json, new TypeReference<HashMap<String,String>>(){}); System.out.println(map); } catch (Exception e) { e.printStackTrace(); } } }
Map->JSON:
package jackson.map2json; import java.util.HashMap; import java.util.Map; import org.codehaus.jackson.map.ObjectMapper; public class MapJsonExample { public static void main(String[] args) { try { ObjectMapper mapper = new ObjectMapper(); String json = ""; Map<String, String> map = new HashMap<String, String>(); map.put("name", "mkyong"); map.put("age", "29"); //convert map to JSON string json = mapper.writeValueAsString(map); System.out.println(json); } catch (Exception e) { e.printStackTrace(); } } }
Map->JSON File:
package jackson.map2file; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.codehaus.jackson.map.ObjectMapper; public class JsonMapFileExample { public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); Map<String, Object> map = new HashMap<String, Object>(); map.put("name", "mkyong"); map.put("age", 29); List<Object> list = new ArrayList<Object>(); list.add("msg 1"); list.add("msg 2"); list.add("msg 3"); map.put("messages", list); try { // write JSON to a file mapper.writeValue(new File("e:\\user.json"), map); } catch (Exception e) { e.printStackTrace(); } } }
JSON FILE->Map:
package jackson.file2map; import java.io.File; import java.util.ArrayList; import java.util.Map; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; public class JsonFileMapExample { public static void main(String[] args) { try { ObjectMapper mapper = new ObjectMapper(); // read JSON from a file Map<String, Object> map = mapper.readValue( new File("e:\\user.json"), new TypeReference<Map<String, Object>>() { }); System.out.println(map.get("name")); System.out.println(map.get("age")); @SuppressWarnings("unchecked") ArrayList<String> list = (ArrayList<String>) map.get("messages"); for (String msg : list) { System.out.println(msg); } } catch (Exception e) { e.printStackTrace(); } } }
用树的方式操作JSON:
package jackson.treemodel; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.node.ObjectNode; public class JacksonTreeNodeExample { public static void main(String[] args) { ObjectMapper mapper = new ObjectMapper(); try { BufferedReader fileReader = new BufferedReader( new FileReader("e:\\user.json")); JsonNode rootNode = mapper.readTree(fileReader); /*** read ***/ JsonNode nameNode = rootNode.path("name"); System.out.println(nameNode.getTextValue()); JsonNode ageNode = rootNode.path("age"); System.out.println(ageNode.getIntValue()); JsonNode msgNode = rootNode.path("messages"); Iterator<JsonNode> ite = msgNode.getElements(); while (ite.hasNext()) { JsonNode temp = ite.next(); System.out.println(temp.getTextValue()); } /*** update ***/ ((ObjectNode)rootNode).put("nickname", "new nickname"); ((ObjectNode)rootNode).put("name", "updated name"); ((ObjectNode)rootNode).remove("age"); mapper.writeValue(new File("e:\\user.json"), rootNode); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
用流的方式生成JSON:
package jackson.jsongenerator; import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonEncoding; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.map.JsonMappingException; public class JacksonStreamExample { public static void main(String[] args) { try { JsonFactory jfactory = new JsonFactory(); /*** write to file ***/ JsonGenerator jGenerator = jfactory.createJsonGenerator(new File( "e:\\user.json"), JsonEncoding.UTF8); jGenerator.writeStartObject(); // { jGenerator.writeStringField("name", "mkyong"); // "name" : "mkyong" jGenerator.writeNumberField("age", 29); // "age" : 29 jGenerator.writeFieldName("messages"); // "messages" : jGenerator.writeStartArray(); // [ jGenerator.writeString("msg 1"); // "msg 1" jGenerator.writeString("msg 2"); // "msg 2" jGenerator.writeString("msg 3"); // "msg 3" jGenerator.writeEndArray(); // ] jGenerator.writeEndObject(); // } jGenerator.close(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
用流的方式解析JSON:
package jackson.parsejson; import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.JsonMappingException; public class JacksonStreamExample { public static void main(String[] args) { try { JsonFactory jfactory = new JsonFactory(); /*** read from file ***/ JsonParser jParser = jfactory.createJsonParser(new File("e:\\user.json")); // loop until token equal to "}" while (jParser.nextToken() != JsonToken.END_OBJECT) { String fieldname = jParser.getCurrentName(); if ("name".equals(fieldname)) { // current token is "name", // move to next, which is "name"'s value jParser.nextToken(); System.out.println(jParser.getText()); // display mkyong } if ("age".equals(fieldname)) { // current token is "age", // move to next, which is "name"'s value jParser.nextToken(); System.out.println(jParser.getIntValue()); // display 29 } if ("messages".equals(fieldname)) { jParser.nextToken(); // current token is "[", move next // messages is array, loop until token equal to "]" while (jParser.nextToken() != JsonToken.END_ARRAY) { // display msg1, msg2, msg3 System.out.println(jParser.getText()); } } } jParser.close(); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
相关推荐
主要介绍了Java的Jackson库的使用及其树模型入门学习教程,Jackson库通常被用来作Java对象和JSON的互相转换,需要的朋友可以参考下
代码是关于王嘉尔在《福布斯中国》受采访的词云,大家有兴趣可以互相学习,欢迎大家多多指正(嘻嘻嘻,超级无敌宇宙非常欢迎各位Jacky尝试一下,真的好好玩,用老王的图当遮罩,做出来的词云真的很lovely) ...
开发工具IntelliJ IDEA15,maven构建工程,使用spring4.1.1,demo集成jackson传输json,hibernate-validator校验数据,mybatis数据库持久框架,拦截器interceptor,aop构建事务等,让你快速入门spring
使用PSIM 学习 电力电子技术基础_[胡金库 译][西安交通大学出版社][2009][195页]
基于Vue+SpringBoot开发的网上书店系统源码+数据库+项目说明文档(课设...3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
JavaLearnVulnerabilityJava漏洞学习代码及笔记... 每一个部分从基础的知识学习,再到漏洞实战分析,漏洞实战分析主要以最近几年的历史漏洞。5. 由浅入深,由易到难。项目说明项目说明javatest依赖文件都在lib目录下,
Jackson学习特辑 JUnit5学习特辑 《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下: MyBatis学习(初级版) Spring领域 Spring基础 Spring扩展实战专题 畅游Spring源码...
Jackson学习特辑 JUnit5学习特辑 《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下: MyBatis学习(初级版) Spring领域 Spring基础 Spring扩展实战专题 畅游Spring源码...
介绍数据挖掘、机器学习和其他“活跃”统计领域的高级主题,以拓宽我们的知识基础,并在可能的情况下连接统计思想。 随着“大数据”革命的到来,这些方法变得比以往任何时候都更加重要。 2014 年秋季,我们选择...
关于作者 ...前腾讯、前阿里员工,从事Java后台工作;...Jackson学习特辑 JUnit5学习特辑 《JUnit5学习》系列旨在通过实战提升SpringBoot环境下的单元测试技能,一共八篇文章,链接如下: jetcd学习特
Severance 学习使用Python编程,Cody Jackson 想想Python ,艾伦·唐尼(Allen B.Downey) 有效的Python ,布雷特·斯拉特金(Brett Slatkin) Python程式设计Coursera专业化莱斯大学的Python专业化脚本入门密歇根...
PassJava是一种Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础。 PassJava项目可以教会你如何建造SpringBoot项目,Spring Cloud项目采用流行的技术,例如SpringBoot,MyBatis,...
Jackson学习特辑 Spring领域 Spring基础 Spring扩展实战专题 畅游Spring源码世界 SpringBoot基础 SpringBoot进阶实战 SpringCloud基础 SpringCloud实战 Eureka源码分析专题 spring-cloud-alibaba实战 ; ; ; ; ; ...
管理系统 SSM实现增删改查(RESTful风格) ...其他技术:Java高级技术/ Hibernate-validator / JSR303 / Jackson 联系我 更多项目资源,sql文件请关注公众号:Web项目聚集地 回复:信息管理获取sql文件
消费行为,尤其是杰克逊·康恩(Jackson Cone)和同事在PNAS中的主要实验发现,2016年。我们的目的是证明HRL模型可以预测作者数据的定性特征,从而奠定基础进行进一步的定量分析。 这个项目目前正在Boris Gutkin团队...
相关软件包:servlet、mysql、lombok、jackson 功能点 用户管理 **注册:** 管理员用户进行注册,使用form表单收集用户的username和password。插入到数据库表中,为了提高安全性使用BCrypt对用户的密码进行加密。...
application.yml Jackson启用的属性文件 Spring数据准备就绪 Bootstrap3主题 字体很棒 屏幕截图 要阅读的JavaFX 简洁明了的Java教程: : 官方Oracle Java教程网站: : 入门: : 学习Java语言: : 基本...
jackson 字段动态过滤 Json 2 Pojo User-agent-utils 杂项 swagger 文档 java 8 反射工具 restful RESTful文档管理 api设计 JWT PDF spring RequestMapping 使用使用示例 编程闯关、完成挑战 设计模式 图片 图形...
jackson 字段动态过滤 Json 2 Pojo User-agent-utils 杂项 swagger 文档 java 8 Java8代码片段 反射工具 restful RESTful文档管理 api设计 JWT oauth2 PDF spring RequestMapping 使用使用示例 编程闯关、完成...
项目通过maven进行构建,整体使用SpringBoot框架,使用MVC设计模式,同时实现PO,VO分离,前端使用vue.js和axios以及后端使用springboot内部封装的jackson实现网页的局部刷新,完成了前端与后端,后端与数据库的对接...