【发布时间】:2016-02-06 09:00:17
【问题描述】:
我正在尝试查询我在 Firebase 上的 JSON 树中的一些数据。我继续创建我的 POJO,但我不断收到 JsonMappingException: Can not instantiate value of type [simple type, class net.rmoreno.ally.Ally] from Integral number; no single-int-arg constructor/factory method 错误。我已经做到了,它只考虑了String email,但它一直在崩溃并告诉我问题出在整数上。我该如何解决这个问题。
这是导致它崩溃的代码
query.addChildEventListener(new ChildEventListener() {
ArrayList<Ally> allyArrayList = new ArrayList<>();
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
for(DataSnapshot userSnapshot: dataSnapshot.getChildren()){
Ally information = userSnapshot.getValue(Ally.class);
allyArrayList.add(information);
}
}
这是我的 POJO
@JsonIgnoreProperties({"latitude", "longitude","phone","availability","email"})
public class Ally {
String name;
//String email;
//String phone;
//int availability;
public Ally(){
}
public String getName(){
return name;
}
// public String getEmail(){
// return email;
// }
// public String getPhone(){
// return phone;
// }
// public int getAvailability(){
// return availability;
// }
}
这是我的堆栈跟踪
com.firebase.client.FirebaseException: Failed to bounce to type
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:185)
at net.rmoreno.ally.MainActivity$1.onChildAdded(MainActivity.java:46)
at com.firebase.client.core.ChildEventRegistration.fireEvent(ChildEventRegistration.java:58)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class net.rmoreno.ally.Ally] from Integral number; no single-int-arg constructor/factory method
at com.fasterxml.jackson.databind.deser.std.StdValueInstantiator.createFromInt(StdValueInstantiator.java:320)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromNumber(BeanDeserializerBase.java:1012)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:138)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:123)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:183)
at net.rmoreno.ally.MainActivity$1.onChildAdded(MainActivity.java:46)
at com.firebase.client.core.ChildEventRegistration.fireEvent(ChildEventRegistration.java:58)
at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45)
at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
编辑:这是 Firebase 上的 JSON 结构
【问题讨论】:
-
你能告诉我们你试图解析的 JSON 吗?
-
我已经添加了它