我已经尝试了一切,但我无法弄明白Javabeans需要什么:
"poitypes":{
"2":{
"name":"Info",
"icon":"info.png"
},
"1":{
"name":"Toilets",
"icon":"toilets.png"
}
}
有没有人有线索?
答案 0 :(得分:2)
如果您正在谈论GSON库,那么您可以这样做。
InputStreamReader isr = new InputStreamReader ( inputstream );
Gson g = new Gson ();
MyResultObject result = g.fromJson ( isr, MyResultObject.class );
答案 1 :(得分:2)
你需要这样的东西:
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),你需要一些代表它的类,它会有一个字段被称为“{1}}类型的”poitypes“(或者你称之为的任何东西)。
现在,如果您的JSON对象实际上可以包含更多命名图标(称为“3”,“4”等),那么您将无法像这样做。如果这些数字总是顺序的,那么JSON应该是一个JSON数组而不是一个对象。如果不是,则需要使用自定义Wrapper
将该对象反序列化为JsonDeserializer
或其他类似对象。