我正在使用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所述