jackson实现json与对象,集合,map之间的转换
2018-01-13 15:49
483 查看
jackson是一个比较常用的json转换工具,功能很强大,本文为其基本方法的demo,实现的功能如题
package commonsTest; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import models.Person; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; import org.junit.Test; /** * jackson实现json与对象,集合,map之间的转换 */ public class Demo3 { /** * 将map转换成json字符串 * {"age":23,"name":"张三","addr":"北京"} * @throws Exception */ @Test public void test1() throws Exception{ Map<String,Object> map = new HashMap<String,Object>(); map.put("name", "张三"); map.put("age", 23); map.put("addr", "北京"); ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(map); System.out.println(string); } /** * json字符串转换成map对象 * {name=张三, age=23, addr=北京} * @throws Exception */ @Test public void test2() throws Exception{ String str = "{\"name\":\"张三\",\"age\":23,\"addr\":\"北京\"}"; ObjectMapper mapper = new ObjectMapper(); Map readValue = mapper.readValue(str, Map.class); System.out.println(readValue); } /** * 将对象转换成json字符串 * {"name":"张三","age":23,"addr":"北京"} * @throws Exception */ @Test public void test3() throws Exception{ Person p = new Person("张三",23,"北京"); ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(p); System.out.println(string); } /** * 将json字符串转换为对象 * Person [name=张三, age=23, addr=北京] * @throws Exception */ @Test public void test4() throws Exception{ String str = "{\"name\":\"张三\",\"age\":23,\"addr\":\"北京\"}"; ObjectMapper mapper = new ObjectMapper(); Person readValue = mapper.readValue(str, Person.class); System.out.println(readValue); } /** * 将数组转换成json字符串 * [{"name":"张三","age":23,"addr":"北京"},{"name":"李四","age":24,"addr":"北京"},{"name":"王五","age":25,"addr":"北京"}] * @throws Exception */ @Test public void test5() throws Exception{ Person p1 = new Person("张三",23,"北京"); Person p2 = new Person("李四",24,"北京"); Person p3 = new Person("王五",25,"北京"); Person[] persons = {p1,p2,p3}; ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(persons); System.out.println(string); } /** * 将字符串转换成数组 * Person [name=张三, age=23, addr=北京] Person [name=李四, age=24, addr=北京] Person [name=王五, age=25, addr=北京] * @throws Exception */ @Test public void test6() throws Exception{ String str = "[{ 4000 \"addr\":\"北京\",\"age\":23,\"name\":\"张三\"},{\"addr\":\"北京\",\"age\":24,\"name\":\"李四\"},{\"addr\":\"北京\",\"age\":25,\"name\":\"王五\"}]"; ObjectMapper mapper = new ObjectMapper(); Person[] persons = mapper.readValue(str,new TypeReference<Person[]>(){}); String content = ""; for (Person person : persons) { content+=person.toString()+" "; } System.out.println(content); } /** * 将集合转换成json字符串 * [{"name":"张三","age":23,"addr":"北京"},{"name":"李四","age":24,"addr":"北京"},{"name":"王五","age":25,"addr":"北京"}] * @throws Exception */ @Test public void test7() throws Exception{ List<Person> list = new ArrayList<Person>(); Person p1 = new Person("张三",23,"北京"); Person p2 = new Person("李四",24,"北京"); Person p3 = new Person("王五",25,"北京"); list.add(p1); list.add(p2); list.add(p3); ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(list); System.out.println(string); } /** * 将json字符串转换成集合 * [Person [name=张三, age=23, addr=北京], Person [name=李四, age=24, addr=北京], Person [name=王五, age=25, addr=北京]] * @throws Exception */ @Test public void test8() throws Exception{ String str = "[{\"addr\":\"北京\",\"age\":23,\"name\":\"张三\"},{\"addr\":\"北京\",\"age\":24,\"name\":\"李四\"},{\"addr\":\"北京\",\"age\":25,\"name\":\"王五\"}]"; ObjectMapper mapper = new ObjectMapper(); List<Person> persons = mapper.readValue(str,new TypeReference<List<Person>>(){}); System.out.println(persons); } /** * 复杂数据的转换,map转json * {"message":"传输数据","data":[{"name":"张三","age":23,"addr":"北京"},{"name":"李四","age":24,"addr":"北京"},{"name":"王五","age":25,"addr":"北京"}]} * @throws Exception */ @Test public void test9() throws Exception{ List<Person> list = new ArrayList<Person>(); Person p1 = new Person("张三",23,"北京"); Person p2 = new Person("李四",24,"北京"); Person p3 = new Person("王五",25,"北京"); list.add(p1); list.add(p2); list.add(p3); Map<String,Object> map = new HashMap<String, Object>(); map.put("data", list); map.put("message", "传输数据"); ObjectMapper mapper = new ObjectMapper(); String string = mapper.writeValueAsString(map); System.out.println(string); } /** * 复杂数据的转换,从json中得到传输数据 * [{name=张三, age=23, addr=北京}, {name=李四, age=24, addr=北京}, {name=王五, age=25, addr=北京}] * @throws Exception */ @Test public void test10() throws Exception{ String str = "{\"message\":\"传输数据\",\"data\":[{\"name\":\"张三\",\"age\":23,\"addr\":\"北京\"},{\"name\":\"李四\",\"age\":24,\"addr\":\"北京\"},{\"name\":\"王五\",\"age\":25,\"addr\":\"北京\"}]}"; ObjectMapper mapper = new ObjectMapper(); Map readValue = mapper.readValue(str,Map.class); List list = (List) readValue.get("data"); System.out.println(list); } }
相关文章推荐
- 用jackson包实现json、对象、Map之间的转换
- 用jackson包实现json、对象、Map之间的转换
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- Jackson如何实现json字符串和泛型List集合之间的转换
- 对象转换为Map集合,使用JSONObject实现
- 通过Jackson实现Java对象和json字符串的相互转换
- 使用Jackson来实现Java对象与JSON的相互转换的教程
- Jackson 将Map对象转换成JSON
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- JSON 与 对象 、集合 之间的转换
- json对象(json-lib)转换成list-map集合
- JSON 与对象、集合之间的转换的示例
- jsontools实现java对象与json值之间互相转换
- JSON 与 对象 、集合 之间的转换
- Golang 奇葩的时间包之Json与struct对象之间互相转换,JsonDate和JsonTime自定义类型如何实现json编码和解码(二)
- JS中实现JSON对象和JSON字符串之间的相互转换
- 使用Google的Gson实现对象和json字符串之间的转换
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
- 用Gson实现json与对象、list集合之间的相互转化
- 使用xStream对(Java对象、List集合、Map )到JSON转换、从JSON转换java对象