Andorid Gson解析示例:

1、创建实体类学生:

public class Student {

    private String name;
    private int age;
    private boolean sex;

    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;
    }

    public boolean isSex() {
        return sex;
    }

    public void setSex(boolean gender) {
        this.sex = gender;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]";
    }

}

2、解析:

public class DemoParser {

    private static void parser2Map() {
        String json = "{'3':{'name':'小3','age':20,'sex':true},'小4':{'name':'小4','age':21,'sex':false},'小5':{'name':'小5','age':22,'sex':true},'小1':{'name':'小1','age':18,'sex':true},'小2':{'name':'小2','age':19,'sex':false}}";

        Gson gson = new Gson();
        TypeToken<Map<String, Student>> token = new com.google.gson.reflect.TypeToken<Map<String, Student>>() {
        };
        Map<String, Student> stus = gson.fromJson(json, token.getType());

        System.out.println(stus);
    }

    private static void parser2List() {

        String json = "[{'name':'小1','age':18,'sex':true},{'name':'小2','age':19,'sex':false},{'name':'小3','age':20,'sex':true},{'name':'小4','age':21,'sex':false},{'name':'小5','age':22,'sex':true}]";

        Gson gson = new Gson();
        TypeToken<List<Student>> token = new com.google.gson.reflect.TypeToken<List<Student>>() {
        };
        List<Student> stus = gson.fromJson(json, token.getType());

        System.out.println(stus);
    }

    private static void parser2Object() {
        // json转换 为简单对象
        String json = "{'name':'张三','age':18,'sex':true}";

        Gson gson = new Gson();

        Student student = gson.fromJson(json, Student.class);
        System.out.println(student);
    }

    private static void parserPoint(){
        // json 节点解析
        String json = "{'flag':true,'data':{'name':'张三','age':18,'sex':true}}";
        // 1.获得 解析者
        JsonParser parser = new JsonParser();

        // 2.获得 根节点元素
        JsonElement element = parser.parse(json);

        // 3.根据 文档判断根节点属于 什么类型的 Gson节点对象
        JsonObject root = element.getAsJsonObject();

        // 4. 取得 节点 下 的某个节点的 value
        JsonPrimitive flagJson = root.getAsJsonPrimitive("flag");
        boolean flag = flagJson.getAsBoolean();

        JsonObject dataJson = root.getAsJsonObject("data");
        Student student = new Gson().fromJson(dataJson, Student.class);

        System.out.println(flag);
        System.out.println(student);

    }


public static void main(String[] args) {

        // parser2Object();

        // parser2List();

        // parser2Map();

        parserPoint();

    }

}

3、将对象解析为字符串

public class DemoFormat {

    // 将 java 对象 格式化为 Json 字符串.
    public static void main(String[] args) {

        Student stu = new Student();
        stu.setName("张三");
        stu.setAge(18);
        stu.setSex(true);


        Gson gson = new Gson();
        String json = gson.toJson(stu);

        System.out.println(json);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lovoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值