繁体   English   中英

使用GSON结构进行JSON解析

[英]JSON parsing with GSON Structure

我已经尝试在另一个项目中执行此操作,并且根据我所看到的教程,我知道自己处在正确的轨道上,但是我无法正确进行此解析:

(简化了)JSON输出:

{
"data":{
  "info":{
      "username": "something"
      "email" : "something"
   }
..
..

}

我正在尝试使用以下类来获取“用户名”和“电子邮件”:

class ProfileResponse {
static Data data;

public static Data getData() {
    return data;
}

public static void setData(Data data) {
    ProfileResponse.data = data;
}

}

Class Data {
@SerializedName("info")
static Info info;

public static Info getInfo() {
    return info;
}

public static void setInfo(Info info) {
    Data.info = info;
}

}

class Info {
@SerializedName("username")
static String username;
@SerializedName("email")
static String email;

public static String getUsername() {
    return username;
}

public static String getEmail() {
    return email;
}

}

并反序列化JSON字符串(这是字符串的问题吗?),如下所示:

           Gson gson = new Gson();
                        gson.fromJson(response, ProfileResponse.class);
                        if (Info.getUsername() == null
                                || Info.getUsername().isEmpty()) {
                            System.out.println("NO USERNAME");
                        } else {
                            System.out.println("USERNAME: "
                                    + Info.getUsername());
                        }

每次运行时都在打印“ NO USERNAME”。

默认情况下, static字段不包括在序列化/反序列化中。

从您的类(字段和方法)中删除所有static关键字,正确地调用fromJson() ,然后您将得到想要的结果。

Gson从JSON实例化您的类的实例。 修改课程后,您将执行以下操作:

ProfileResponse pr = gson.fromJson(response, ProfileResponse.class); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM