GSON解析嵌套JSON数据

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

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

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

...全文
470 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对象了。
下载代码方式:https://pan.quark.cn/s/054d920fa1d1 《学生博客信息管理系统详解》 学生博客信息管理系统是一款针对教育环境而设计的简化博客平台,其主要目的在于协助教师进行学生博客信息的监控与管理,并对学生的作业得分进行记录。该系统具备方便的查询和访问特性,能够显著提升教学活动中的信息传递效率,并且为学生构建了一个展示个人能力、交流知识的平台。 1. **系统架构** 学生博客信息管理系统大概采用了常规的三层架构,涵盖了表现层(用户交互界面)、业务逻辑层(负责业务规则的执行)以及数据访问层(负责与数据库进行数据交换)。此类架构有利于代码的规范化管理与维护,有助于提升系统的可扩展性与代码复用率。 2. **功能模块** - **用户管理**:包含注册、登录、个人资料维护等功能,旨在保障用户能够安全地使用系统。 - **博客发布**:学生能够建立、修改和移除自己的博客文章,内容形式支持文本、图片、链接等多样化展示。 - **博客查询**:用户可根据关键词、作者等条件进行检索,以快速定位所需的博客内容。 - **作业评分**:教师可以检视学生的作业,实施评分与评语,系统将自动计算每次作业的平均分数与总得分。 - **统计分析**:系统提供数据统计功能,例如学生作业成绩的分布情况、活跃度最高的博主排行等,为教学决策提供数据依据。 3. **技术选型** 从提供的文件"博客管理.jar"可以推断,该系统可能基于Java语言开发,因为.jar是Java程序的可执行文件格式。同时,"博客管理_lib"可能包含了系统运行所需的第三方库资源,这些库资源或许包含了Spring框架、Hibernate用于数据持久化处理,或MyBatis用于数据库交互,...

80,490

社区成员

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

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