我正在使用GSON库来浏览来自Web服务的JSON,但是我无法使其工作,我总是得到null。我已经研究过类似的问题,例如将Json转换为Java,例如Simple Json to Java convertion using GSON。但我仍然缺少一些东西

JSON格式

{"A":"val1","B":"val2","C":"val3","D":"val4","E":"val5","F":"val6","G":"val7"}
         SiteWrapper m = gson.fromJson(json, SiteWrapper.class);

java类
SiteWrapper m = gson.fromJson(json, SiteWrapper.class);
System.out.println(m.getMenu());

static class Site {
    static String A;
    static String B;
    static String C;
    static String D;
    static String E;
    static String F;
    static String G;

    public String toString() {
        return String.format(A,B,C,D,E,F,G);}

    public static String getA() {
        return A;
    }
    public static String getB() {
        return B;
    }
... all the way to getG

    public void setA(String A) {
        Site.A = A;
    }
    public void setB(String B) {
        Site.B = B;
    }
... all the way to setB

还有我的 wrapper
class SiteWrapper {
    private Site site;
    public Site getMenu() { return site; }
    public void setMenu(Site site) { this.site = site; }
}

无论我怎么打印空值,有什么想法吗?

最佳答案

由于它是一个静态内部类。如docs所指出和评论:



您可能要尝试

 Gson gson = new GsonBuilder()
    .excludeFieldsWithModifier()
    .create();

此外,由于它是内部类,因此您可能需要更改JSON。如果可以:
 {
   "site":{
      "A":"val1",
      "B":"val2",
      "C":"val3",
      "D":"val4",
      "E":"val5",
      "F":"val6",
      "G":"val7"
   }
}

如此处post所述

09-30 18:46
查看更多