POJO 对象列表有什么更好的
What would be better with POJO object list
我有一个 JSON 结构如下:
{
"bag" : {
"descrition" : "my bag 1",
"text" : 123456,
"item" : {
"-K5D9mi--s6jPWNwrNEu" : {
"name" : "name item",
"value" : 60
},
"-K5R3ugcTVFnNlAEAHus" : {
"name" : "name item 2",
"value" : 55
}}}
}
如果我制作我的 POJO class 如下:
public class Item {
String name;
int value;
}
public class Bag {
String descrition;
String text;
List<Item> item;
}
当我用下面的代码反序列化对象时给出错误,参考对象列表"item":"JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token"
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 json 让我在一次调用中重新获得父对象 Firebase 及其子对象?
您不能在项目列表中序列化 object/hash 映射结构。没有地方放钥匙,例如 "-K5D9mi--s6jPWNwrNEu"
或 "-K5R3ugcTVFnNlAEAHus"
;-)。
自从我使用 Jackson 以来已经有很长时间了,但我相当确定您可以使用 Map<String, Item>
作为 class 中 item
属性的类型 Bag
。即我希望 Jackson 提供一个从 JSON Object 到 Java Map<> 接口的转换器,反之亦然。
我有一个 JSON 结构如下:
{
"bag" : {
"descrition" : "my bag 1",
"text" : 123456,
"item" : {
"-K5D9mi--s6jPWNwrNEu" : {
"name" : "name item",
"value" : 60
},
"-K5R3ugcTVFnNlAEAHus" : {
"name" : "name item 2",
"value" : 55
}}}
}
如果我制作我的 POJO class 如下:
public class Item {
String name;
int value;
}
public class Bag {
String descrition;
String text;
List<Item> item;
}
当我用下面的代码反序列化对象时给出错误,参考对象列表"item":"JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token"
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 json 让我在一次调用中重新获得父对象 Firebase 及其子对象?
您不能在项目列表中序列化 object/hash 映射结构。没有地方放钥匙,例如 "-K5D9mi--s6jPWNwrNEu"
或 "-K5R3ugcTVFnNlAEAHus"
;-)。
自从我使用 Jackson 以来已经有很长时间了,但我相当确定您可以使用 Map<String, Item>
作为 class 中 item
属性的类型 Bag
。即我希望 Jackson 提供一个从 JSON Object 到 Java Map<> 接口的转换器,反之亦然。