您的位置:首页 > Web前端 > JavaScript

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);
    }
    
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: