json 转换为 map、对象

来源:互联网 发布:lols7野怪经验图数据帝 编辑:程序博客网 时间:2024/06/05 10:36

1.如果转换的是Map、或者是简单的对象

package com.gc.action;import java.util.Map;import net.sf.json.JSONObject;/** * 1.json string 转换为 map * 2.json string 转换为 对象 * @author zhangtengda * */public class JsonUtils {    public static void main(String[] args) {        String jsonStr = "{\"status\":\"0\",\"data\":{\"name\":\"tom\",\"age\":18}}";        // ================================        // 1.如果是拿出来最外层的 map        Map<Object, Object> result = jsonToMap(jsonStr);        System.out.println(result.get("status"));        System.out.println(result.get("data"));        // 2.如果进步一拿到内层的 map        Map<Object, Object> data = jsonToMap(result.get("data"));        System.out.println(data.get("name"));        System.out.println(data.get("age"));        // ================================        Long beginTime = System.currentTimeMillis();        // 3.转换为对象        String personStr = "{\"id\":12,\"name\":\"mary\"}";        Person person = jsonToBean(personStr, Person.class);        System.out.println(person);        System.out.println("耗时:"  +( System.currentTimeMillis() - beginTime));    }    /**     * json string 转换为 map 对象     * @param jsonObj     * @return     */    public static Map<Object, Object> jsonToMap(Object jsonObj) {        JSONObject jsonObject = JSONObject.fromObject(jsonObj);        Map<Object, Object> map = (Map)jsonObject;        return map;    }    /**json string 转换为 对象     * @param jsonObj     * @param type     * @return     */    public  static <T>  T jsonToBean(Object jsonObj, Class<T> type) {        JSONObject jsonObject = JSONObject.fromObject(jsonObj);        T obj =(T)JSONObject.toBean(jsonObject, type);        return obj;    } }

使用到的 Person.java

package com.gc.action;public class Person{    private int id;    private String name;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Person(int id, String name) {        super();        this.id = id;        this.name = name;    }    public Person() {    }    @Override    public String toString() {        return "id : " + id + " name : " + name;    }}

maven 依赖

<dependency>    <groupId>net.sf.json-lib</groupId>    <artifactId>json-lib</artifactId>    <version>2.4</version>    <classifier>jdk15</classifier></dependency>

注意这个只是进行简单的 json 和 string 之间的互转,如果是进行复杂对象的 json 转换这个就无法行得通了,需要使用 jackson 工具包来实现了,它可以实现复杂对象的转换,包括对象里面有 list 都可以的

复杂对象的 json 转换参考:

复杂对象 json 转换 工具类实例

0 0