Java之Json

使用gson,我们可以非常轻松的实现数据对象和json对象的相互转化,其中我们最常用的就是两个方法,一个是fromJSON(),将json对象转换成我们需要的数据对象,另一个是toJSON(),这个就是将我们的数据对象转换成json对象。下面我们也通过一个综合的例子来看看gson的使用方法:

gson(http://code.google.com/p/google-gson/)

public class JsonService {
    public Person getPerson()
    {
        Person person = new Person(1, "xiaoluo", "广州");
        return person;
    }
    
    public List<Person> getPersons()
    {
        List<Person> persons = new ArrayList<Person>();
        Person person = new Person(1, "xiaoluo", "广州");
        Person person2 = new Person(2, "android", "上海");
        persons.add(person);
        persons.add(person2);
        return persons;
    }
    
    public List<String> getString()
    {
        List<String> list = new ArrayList<String>();
        list.add("广州");
        list.add("上海");
        list.add("北京");
        return list;
    }
    
    public List<Map<String, String>> getMapList()
    {
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        Map<String, String> map1 = new HashMap<String, String>();
        map1.put("id", "001");
        map1.put("name", "xiaoluo");
        map1.put("age", "20");
        Map<String, String> map2 = new HashMap<String, String>();
        map2.put("id", "002");
        map2.put("name", "android");
        map2.put("age", "33");
        list.add(map1);
        list.add(map2);
        return list;
    }
}
public class Person {
        private int id;
        private String name;
        private String address;

        public Person()
        {
        }

        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 String getAddress()
        {
            return address;
        }

        public void setAddress(String address)
        {
            this.address = address;
        }

        public Person(int id, String name, String address)
        {
            super();
            this.id = id;
            this.name = name;
            this.address = address;
        }

        @Override
        public String toString()
        {
            return "Person [id=" + id + ", name=" + name + ", address=" + address
                    + "]";
        }
}
public class test {
    public void name() {
        
    }
    
    public static void main(String[] args) {
         //Person person = new Person(1, "xiaoluo", "广州");
            //    将Person对象转换成一个json类型的字符串对象
            //String personString = JsonTools.getJsonString("person", person);
           // System.out.println(personString.toString());
         Gson gson = new Gson();
            JsonService jsonService = new JsonService();
            Person person = jsonService.getPerson();
            System.out.println("person: " + gson.toJson(person));
            //    对于Object类型,使用 fromJson(String, Class)方法来将Json对象转换成Java对象
            Person person2 = gson.fromJson(gson.toJson(person), Person.class);
            System.out.println(person2);
            System.out.println("------------------------------------------------");
            
            List<Person> persons = jsonService.getPersons();
            System.out.println("persons: " + gson.toJson(persons));
            /*
             * 对于泛型对象,使用fromJson(String, Type)方法来将Json对象转换成对应的泛型对象
             * new TypeToken<>(){}.getType()方法
             */
            List<Person> persons2 = gson.fromJson(gson.toJson(persons), new TypeToken<List<Person>>(){}.getType());
            System.out.println(persons2);
            System.out.println("------------------------------------------------");
            
            List<String> list = jsonService.getString();
            System.out.println("String---->" + gson.toJson(list));
            List<String> list2 = gson.fromJson(gson.toJson(list), new TypeToken<List<String>>(){}.getType());
            System.out.println("list2---->" + list2);
            System.out.println("------------------------------------------------");
            
            List<Map<String, String>> listMap = jsonService.getMapList();
            System.out.println("Map---->" + gson.toJson(listMap));
            List<Map<String, String>> listMap2 = gson.fromJson(gson.toJson(listMap), new TypeToken<List<Map<String, String>>>(){}.getType());
            System.out.println("listMap2---->" + listMap2);
            System.out.println("------------------------------------------------");
         
    }
}
原文地址:https://www.cnblogs.com/ilooking/p/4224957.html