码迷,mamicode.com
首页 > 其他好文 > 详细

GSON 示例代码 实用版

时间:2016-04-10 06:48:04      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:


去除所有格式的json字符串

{"data":[{"friend":[{"address":"广州","name":"好友1"},{"address":"深圳","name":"好友2"}],"username":"包青天"},{"friend":[],"username":"bqt"}],"num":2}

添加转义字符后的json字符串

{\"data\":[{\"friend\":[{\"address\":\"广州\",\"name\":\"好友1\"},{\"address\":\"深圳\",\"name\":\"好友2\"}],\"username\":\"包青天\"},{\"friend\":[],\"username\":\"bqt\"}],\"num\":2}

技术分享

技术分享 技术分享

{ "data": [ { "friend": [ { "address": "广州", "name": "好友1" }, { "address": "深圳", "name": "好友2" } ], "username": "包青天" }, { "friend": [], "username": "bqt" } ], "num": 2 }


public class GsonDemo {

    // 将 java 对象 格式化为 Json 字符串.
    public static void main(String[] args) {
        Gson gson = new Gson();
        String json = "{\"data\":[{\"friend\":[{\"address\":\"广州\",\"name\":\"好友1\"},{\"address\":\"深圳\",\"name\":\"好友2\"}],\"username\":\"包青天\"},{\"friend\":[],\"username\":\"bqt\"}],\"num\":2}";
        GsonBean bean = gson.fromJson(json, GsonBean.class);
        System.out.println(bean.toString());
        System.out.println(bean.data.get(0).username);
        String json2 = gson.toJson(bean);
        System.out.println("Json字符串 = " + json2);
        //******************************************************************************************
        ArrayList<Person> list_person = new ArrayList<Person>();
        list_person.add(new Person("好友1""广州"));
        list_person.add(new Person("好友2""深圳"));

        ArrayList<Account> list_account = new ArrayList<Account>();
        list_account.add(new GsonBean().new Account("包青天", list_person));//外部类GsonBean要有一个无参的构造方法,不然怎么创建内部类对象?
        list_account.add(new GsonBean().new Account("bqt"new ArrayList<Person>()));//可以是空的集合,或者直接是空对象null

        GsonBean bean2 = new GsonBean(2, list_account);
        String json3 = gson.toJson(bean2);
        System.out.println("Json字符串 = " + json3);
    }
}

public class Person {

    //不要求一定有get、set方法,也不要求一定有无参构造方法,甚至不要求其成员是public还是private
    //但要求所有字段名必须和json字符串中的一致
    public String name;
    public String address;
    public Person(String name, String address) {
        this.name = name;
        this.address = address;
    }
    @Override
    public String toString() {
        return "name=" + name + " & " + "address=" + address;
    }
}

public class GsonBean {

    public GsonBean() {
    }
    public GsonBean(int num, ArrayList<Account> data) {
        super();
        this.num = num;
        this.data = data;
    }
    public int num;
    public ArrayList<Account> data;
    /**data数组里的对象*/
    public class Account {
        public String username;
        public ArrayList<Person> friend;
        @Override
        public String toString() {
            return "账户【username=" + username + ",friend=" + friend + "】";
        }
        public Account(String username, ArrayList<Person> friend) {
            super();
            this.username = username;
            this.friend = friend;
        }
    }
    @Override
    public String toString() {
        return "Gson 【num=" + num + ",data=" + data + "】";
    }
}





GSON 示例代码 实用版

标签:

原文地址:http://www.cnblogs.com/baiqiantao/p/5373273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!