我用盡了一切,但我不能算出它的Javabean我需要什麼,這樣的:如何使用GSON解析此問題?
"poitypes":{
"2":{
"name":"Info",
"icon":"info.png"
},
"1":{
"name":"Toilets",
"icon":"toilets.png"
}
}
沒有人有線索?
我用盡了一切,但我不能算出它的Javabean我需要什麼,這樣的:如何使用GSON解析此問題?
"poitypes":{
"2":{
"name":"Info",
"icon":"info.png"
},
"1":{
"name":"Toilets",
"icon":"toilets.png"
}
}
沒有人有線索?
如果你正在談論GSON庫,那麼你做這樣的事情。
InputStreamReader isr = new InputStreamReader (inputstream);
Gson g = new Gson();
MyResultObject result = g.fromJson (isr, MyResultObject.class);
你會需要這樣的事:
public class NamedIcon {
private String name;
private String icon;
NamedIcon() {}
public NamedIcon(String name, String icon) {
this.name = name;
this.icon = icon;
}
// Getters, equals, hashCode, toString, whatever else
}
然後某種包裝類:
public class Wrapper {
@SerializedName("1") private NamedIcon one;
@SerializedName("2") private NamedIcon two;
// ...
}
然後,因爲你的 「poitypes」 字段本身必須是一部分另一個JSON對象(你自己發佈的片段不是合法的JSON),你需要一些代表該類的類,該類將會有一個名爲Wrapper
(或者你稱之爲「類型」)的「poitypes」的字段。現在,如果你的JSON對象實際上可以包含更多的命名圖標(稱爲「3」,「4」等),那麼你就不能這樣做。如果這些數字總是順序的,那麼JSON應該是一個JSON數組而不是一個對象。如果不是,則需要使用自定義的JsonDeserializer
將該對象反序列化爲Map<Integer, NamedIcon>
或其他類型。