GSON解析嵌套JSON数据

瓶子君i 2016-08-26 03:33:21
刚研究JSON的小白,遇到一个解析JSON的问题,
网上找资料做测试怎么都不出来数据,

下面是这个JSON,只能用传统的方式解析,但是我希望用GSON来解析

{"DataJSon":[{"JobNumber":"8652","Name":"张三","Status":"上班","Factory":"集团有限公司"}]}

...全文
425 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
瓶子君i 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 qq_23169015 的回复:

import java.util.List;

public class test {


    /**
     * JobNumber : 8652
     * Name : 张三
     * Status : 上班
     * Factory : 集团有限公司
     */

    private List<DataJSonBean> DataJSon;

    public static test objectFromData(String str) {

        return new com.google.gson.Gson().fromJson(str, test.class);
    }

    public List<DataJSonBean> getDataJSon() {
        return DataJSon;
    }

    public void setDataJSon(List<DataJSonBean> DataJSon) {
        this.DataJSon = DataJSon;
    }

    public static class DataJSonBean {
        private String JobNumber;
        private String Name;
        private String Status;
        private String Factory;

        public static DataJSonBean objectFromData(String str) {

            return new com.google.gson.Gson().fromJson(str, DataJSonBean.class);
        }

        public String getJobNumber() {
            return JobNumber;
        }

        public void setJobNumber(String JobNumber) {
            this.JobNumber = JobNumber;
        }

        public String getName() {
            return Name;
        }

        public void setName(String Name) {
            this.Name = Name;
        }

        public String getStatus() {
            return Status;
        }

        public void setStatus(String Status) {
            this.Status = Status;
        }

        public String getFactory() {
            return Factory;
        }

        public void setFactory(String Factory) {
            this.Factory = Factory;
        }
    }
}
调用

    String s="{\"DataJSon\":[{\"JobNumber\":\"8652\",\"Name\":\"张三\",\"Status\":\"上班\",\"Factory\":\"集团有限公司\"}]}";
   test data= test.objectFromData(s);
好啦好啦 获取到拉~谢谢哦
引用 6 楼 lizebin_bin 的回复:
推荐一个Android studio的工具:GsonFormat 1、安装完毕之后,新建一个实体类,然后把json字符串复制后,在类编辑面板中Alt+insert键调出菜单,选择GsonFormat,将复制的json字符串粘贴,生成即可。 2、然后导入gson解析框架,new Gson().from(String jsonStr,Clazz.class)。第一个传入json字符串,第二个参数就是刚刚新建的实体类.class文件
这个好用,我刚才试了,谢谢哈
碼农李泽斌 2016-08-29
  • 打赏
  • 举报
回复
推荐一个Android studio的工具:GsonFormat 1、安装完毕之后,新建一个实体类,然后把json字符串复制后,在类编辑面板中Alt+insert键调出菜单,选择GsonFormat,将复制的json字符串粘贴,生成即可。 2、然后导入gson解析框架,new Gson().from(String jsonStr,Clazz.class)。第一个传入json字符串,第二个参数就是刚刚新建的实体类.class文件
瓶子君i 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 Bleach3 的回复:
用gson解析,需要定义对应的类,大概就是下面这种结构

public class DataBean {
     private List<dataEntity> DataJSon;
     //还需要getter and setter
     public class dataEntity {
          private String JobNumber;
          private String Name;
          private String Status;
          private String Factory;
          //还需要getter and setter
     }
}
然后用 new Gson().fromJson(jsonString, DataBean.class); 就可以解析成DataBean对象了。
有GET SET 的
瓶子君i 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 Bleach3 的回复:
用gson解析,需要定义对应的类,大概就是下面这种结构

public class DataBean {
private List<dataEntity> DataJSon;
//还需要getter and setter
public class dataEntity {
private String JobNumber;
private String Name;
private String Status;
private String Factory;
//还需要getter and setter
}
}

然后用 new Gson().fromJson(jsonString, DataBean.class); 就可以解析成DataBean对象了。


它报这个值为空哎,怎么弄

        Gson gson = new Gson();

TestBean testBean = gson.fromJson(stringJSON,TestBean.class);

Log.i("+++++",testBean.getDataJSonList().get(0)+"");




瓶子君i 2016-08-29
  • 打赏
  • 举报
回复
引用 2 楼 qq_23169015 的回复:

import java.util.List;

public class test {


    /**
     * JobNumber : 8652
     * Name : 张三
     * Status : 上班
     * Factory : 集团有限公司
     */

    private List<DataJSonBean> DataJSon;

    public static test objectFromData(String str) {

        return new com.google.gson.Gson().fromJson(str, test.class);
    }

    public List<DataJSonBean> getDataJSon() {
        return DataJSon;
    }

    public void setDataJSon(List<DataJSonBean> DataJSon) {
        this.DataJSon = DataJSon;
    }

    public static class DataJSonBean {
        private String JobNumber;
        private String Name;
        private String Status;
        private String Factory;

        public static DataJSonBean objectFromData(String str) {

            return new com.google.gson.Gson().fromJson(str, DataJSonBean.class);
        }

        public String getJobNumber() {
            return JobNumber;
        }

        public void setJobNumber(String JobNumber) {
            this.JobNumber = JobNumber;
        }

        public String getName() {
            return Name;
        }

        public void setName(String Name) {
            this.Name = Name;
        }

        public String getStatus() {
            return Status;
        }

        public void setStatus(String Status) {
            this.Status = Status;
        }

        public String getFactory() {
            return Factory;
        }

        public void setFactory(String Factory) {
            this.Factory = Factory;
        }
    }
}
调用

    String s="{\"DataJSon\":[{\"JobNumber\":\"8652\",\"Name\":\"张三\",\"Status\":\"上班\",\"Factory\":\"集团有限公司\"}]}";
   test data= test.objectFromData(s);
 test testJSON = com.example.test_gson_0826.test.objectFromData(stringJSON);


        Log.i("+++++", String.valueOf(testJSON.getDataJSon().get(0)));
我用这句代码,获取到的是这个地址,这个怎么转换啊
 I/+++++: com.example.test_gson_0826.test$DataJSonBean@6e5ff0
瓶子君i 2016-08-29
  • 打赏
  • 举报
回复
引用 1 楼 Bleach3 的回复:
用gson解析,需要定义对应的类,大概就是下面这种结构

public class DataBean {
     private List<dataEntity> DataJSon;
     //还需要getter and setter
     public class dataEntity {
          private String JobNumber;
          private String Name;
          private String Status;
          private String Factory;
          //还需要getter and setter
     }
}
然后用 new Gson().fromJson(jsonString, DataBean.class); 就可以解析成DataBean对象了。
以弄好,多谢啦
疯狂的兔子ccc 2016-08-26
  • 打赏
  • 举报
回复

import java.util.List;

public class test {


    /**
     * JobNumber : 8652
     * Name : 张三
     * Status : 上班
     * Factory : 集团有限公司
     */

    private List<DataJSonBean> DataJSon;

    public static test objectFromData(String str) {

        return new com.google.gson.Gson().fromJson(str, test.class);
    }

    public List<DataJSonBean> getDataJSon() {
        return DataJSon;
    }

    public void setDataJSon(List<DataJSonBean> DataJSon) {
        this.DataJSon = DataJSon;
    }

    public static class DataJSonBean {
        private String JobNumber;
        private String Name;
        private String Status;
        private String Factory;

        public static DataJSonBean objectFromData(String str) {

            return new com.google.gson.Gson().fromJson(str, DataJSonBean.class);
        }

        public String getJobNumber() {
            return JobNumber;
        }

        public void setJobNumber(String JobNumber) {
            this.JobNumber = JobNumber;
        }

        public String getName() {
            return Name;
        }

        public void setName(String Name) {
            this.Name = Name;
        }

        public String getStatus() {
            return Status;
        }

        public void setStatus(String Status) {
            this.Status = Status;
        }

        public String getFactory() {
            return Factory;
        }

        public void setFactory(String Factory) {
            this.Factory = Factory;
        }
    }
}
调用

    String s="{\"DataJSon\":[{\"JobNumber\":\"8652\",\"Name\":\"张三\",\"Status\":\"上班\",\"Factory\":\"集团有限公司\"}]}";
   test data= test.objectFromData(s);
Bleach3 2016-08-26
  • 打赏
  • 举报
回复
用gson解析,需要定义对应的类,大概就是下面这种结构

public class DataBean {
     private List<dataEntity> DataJSon;
     //还需要getter and setter
     public class dataEntity {
          private String JobNumber;
          private String Name;
          private String Status;
          private String Factory;
          //还需要getter and setter
     }
}
然后用 new Gson().fromJson(jsonString, DataBean.class); 就可以解析成DataBean对象了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧