Json解析转化

来源:互联网 发布:软件制作器 编辑:程序博客网 时间:2024/05/18 01:29

一个工具类

/** * Created by lvjie on 2017/3/3 0003. * 有关json相关的转化; */public class ParseJsonUtil {    private ParseJsonUtil(){}    /**     * 对象转换成json字符串     * @param obj     * @return     */    public static String toJson(Object obj) {        Gson gson = new Gson();        return gson.toJson(obj);    }    /**     * json字符串转成对象     * @param str     * @param type     * @return     */    public static <T> T fromJson(String str, Type type) {        Gson gson = new Gson();        return gson.fromJson(str, type);    }}

案例-实体类

class Student{        private String name;        private int age;        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        public int getAge() {            return age;        }        public void setAge(int age) {            this.age = age;        }        @Override        public String toString() {            return "name: "+name+"   age: "+age;        }    }

案例一:将对象与Json之间的转化

Student student = new Student();student.setName("lvjie");student.setAge(21);String json = ParseJsonUtil.toJson(student);System.out.println(json);// 输出如下:{"name":"lvjie","age":21}json = "{\"name\":\"jack\",\"age\":20}";student = ParseJsonUtil.fromJson(json, Student.class);System.out.println(student);// 输出如下:name: jack   age: 20

案例二:list与json之间转化

List<Student> list = new ArrayList<>();Student student = new Student();student.setName("lvjie");student.setAge(21);list.add(student);list.add(student);String json = ParseJsonUtil.toJson(list);System.out.println(json);// 输出如下:[{"name":"lvjie","age":21},{"name":"lvjie","age":21}]json = "[{\"name\":\"lvjie\",\"age\":21},{\"name\":\"jack\",\"age\":20}]";list = ParseJsonUtil.fromJson(json, new TypeToken<List<Student>>() {}.getType());System.out.println(list);// 输出如下:[name: lvjie   age: 21, name: jack   age: 20]

案例三:map与json之间转化

Map<String, Student> map = new HashMap<>();Student student = new Student();student.setName("lvjie");student.setAge(21);map.put("111", student);map.put("222", student);String json = ParseJsonUtil.toJson(map);System.out.println(json);// 输出如下:{"111":{"name":"lvjie","age":21},"222":{"name":"lvjie","age":21}}json = "{\"111\":{\"name\":\"lvjie\",\"age\":21},\"222\":{\"name\":\"lvjie\",\"age\":21}}";map = ParseJsonUtil.fromJson(json, new TypeToken<Map<String, Student>>(){}.getType());System.out.println(map.get("111"));// 输出如下name: lvjie   age: 21
原创粉丝点击