我的JSON结构如下:
{
"bag" : {
"descrition" : "my bag 1",
"text" : 123456,
"item" : {
"-K5D9mi--s6jPWNwrNEu" : {
"name" : "name item",
"value" : 60
},
"-K5R3ugcTVFnNlAEAHus" : {
"name" : "name item 2",
"value" : 55
}}}
}
如果我按照以下方式制作我的POJO课程:
public class Item {
String name;
int value;
}
public class Bag {
String descrition;
String text;
List<Item> item;
}
当我使用下面的代码反序列化对象时出错,引用对象列表&#34; item&#34;:&#34; JsonMappingException:无法反序列化java.util.ArrayList的实例START_OBJECT令牌&#34;
Firebase ref = new Firebase("myAdressFirebase/bag/");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Bag bag = dataSnapshot.getValue(Bag.class);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
什么是最好的POJO让我在一次通话中重新获得父对象Firebase及其子女?
答案 0 :(得分:4)
您无法序列化项目列表中的对象/哈希映射结构。密钥没有位置,例如"-K5D9mi--s6jPWNwrNEu"
或"-K5R3ugcTVFnNlAEAHus"
;-)。
自从我使用杰克逊以来已经很长时间了,但我相当确定您可以在班级Map<String, Item>
中使用item
作为Bag
- 属性的类型。即我期望Jackson提供从JSON Object到Java Map&lt;&gt;的转换器。界面,反之亦然。