通过Jackson实现Java对象和json字符串的相互转换
2017-10-13 21:52
766 查看
通过Jackson实现Java对象和json字符串的相互转换
下面的案例使用单元测试(junit)方式进行了测试,所以在测试中需要配置junit环境,本人使用的eclipse开发工具,eclipse自带junit测试环境但需要配置,其它的开发工具则需要导入junit测试包。
注:junit测试时测试的方法名必须以test开始,并且在方法上面必须加 @Test
需要导入的Jackson包:
示例代码如下:
测试结果如下:
将Java对象转换为json字符串
将json字符串转换为java对象
将list集合转换为json字符串
将json字符串转换为list集合
将映射集合(Map)转换为json字符串
将json字符串转换为映射集合对象
下面的案例使用单元测试(junit)方式进行了测试,所以在测试中需要配置junit环境,本人使用的eclipse开发工具,eclipse自带junit测试环境但需要配置,其它的开发工具则需要导入junit测试包。
注:junit测试时测试的方法名必须以test开始,并且在方法上面必须加 @Test
需要导入的Jackson包:
示例代码如下:
package cn.sz.hcq.test; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.jasper.tagplugins.jstl.core.ForEach; import org.code 4000 haus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.JavaType; import org.codehaus.jackson.type.TypeReference; import org.junit.Test; import cn.sz.hcq.pojo.User; public class JacksonTest { /** * 将java对象转换为json字符串 * * @throws IOException * @throws JsonMappingException * @throws JsonGenerationException */ @Test public void testObjectToString() throws JsonGenerationException, JsonMappingException, IOException { User u1 = new User(); u1.setId(1); u1.setName("张三"); // 创建实现转换的对象 ObjectMapper mapper = new ObjectMapper(); // 将java对象转换为json字符串 String str = mapper.writeValueAsString(u1); System.out.println("将java对象转换为json字符串:" + str); } /** * 将json字符串转换为Java对象 * * @throws IOException * @throws JsonMappingException * @throws JsonParseException */ @Test public void testStringToObject() throws JsonParseException, JsonMappingException, IOException { String str = "{\"id\":1,\"name\":\"张三\"}"; ObjectMapper mapper = new ObjectMapper(); // 将json字符串解析为一个Java对象 User u = mapper.readValue(str, User.class); System.out.println("将json字符串转换为Java对象:" + u.toString()); } /** * 将List对象转换为Json字符串 * * @throws JsonGenerationException * @throws JsonMappingException * @throws IOException */ @Test public void testListToString() throws JsonGenerationException, JsonMappingException, IOException { User u1 = new User(); u1.setId(1); u1.setName("张三"); User u2 = new User(); u2.setId(2); u2.setName("李四"); List<User> list = new ArrayList<>(); list.add(u1); list.add(u2); ObjectMapper oMapper = new ObjectMapper(); String str = oMapper.writeValueAsString(list); System.out.println("将List对象转换为Json字符串:" + str); } /** * 将Json字符串转换为List对象 * * @throws IOException * @throws JsonMappingException * @throws JsonParseException */ @Test public void testStringToList() throws JsonParseException, JsonMappingException, IOException { String str = "[{\"id\":1,\"name\":\"张三\"},{\"id\":1,\"name\":\"李四\"}]"; ObjectMapper mapper = new ObjectMapper(); List<User> list = mapper.readValue(str, getCollectionType(List.class, User.class)); for (User u : list) { System.out.println("将Json字符串转换为List对象:" + u); } } public JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) { ObjectMapper mapper = new ObjectMapper(); return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); } /** * 将Map对象转换为Json字符串 * * @throws JsonGenerationException * @throws JsonMappingException * @throws IOException */ @Test public void testMapToString() throws JsonGenerationException, JsonMappingException, IOException { User u1 = new User(); u1.setId(1); u1.setName("张三"); User u2 = new User(); u2.setId(2); u2.setName("李四"); Map<String, User> map = new HashMap<>(); map.put("u1", u1); map.put("u2", u2); ObjectMapper oMapper = new ObjectMapper(); String str = oMapper.writeValueAsString(map); System.out.println("将Map对象转换为Json字符串:" + str); } /** * 将Json字符串转换为Map对象 * * @throws IOException * @throws JsonMappingException * @throws JsonParseException */ @Test public void testStringToMap() throws JsonParseException, JsonMappingException, IOException { String str = "{\"u1\":{\"id\":1,\"name\":\"张三\"},\"u2\":{\"id\":2,\"name\":\"李四\"}}"; ObjectMapper mapper = new ObjectMapper(); Map<String, User> map = mapper.readValue(str, new TypeReference<Map<String, User>>() { }); Set<String> set = map.keySet(); Iterator<String> it = set.iterator(); while (it.hasNext()) { String key = (String) it.next(); System.out.println(key + "," + map.get(key)); } } }
测试结果如下:
将Java对象转换为json字符串
将json字符串转换为java对象
将list集合转换为json字符串
将json字符串转换为list集合
将映射集合(Map)转换为json字符串
将json字符串转换为映射集合对象
相关文章推荐
- 通过json-lib实现Java对象和json字符串的相互转换
- 使用jackson对Java对象与JSON字符串相互转换的一些总结。
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- Json字符串和Java实体类之间的相互转换(利用jackson实现)
- 使用Jackson来实现Java对象与JSON的相互转换的教程
- Jackson实现Java对象与JSON的相互转换
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- 使用jackson对Java对象与JSON字符串相互转换
- 使用jackson对Java对象与JSON字符串相互转换的一些总结
- Json字符串和Java对象转换利器——Jackson
- 通过java的反射机制实现Map、JavaBean、JSON的相互转换工具类
- jackson将java对象转换为json字符串
- Google Gson实现JSON字符串和对象之间相互转换
- xStream框架完美实现Java对象和xml文档JSON、XML相互转换
- java对象和json数据转换实现方式3-使用jackson实现
- Android开发-进阶:Json字符串转换为java对象的各种实现方法[json_lib框架、Gson、org.json]
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- 用Jackson将Java对象转换成 JSON字符串
- Jsonlib实现Json字符串和Java对象的互相转换