【发布时间】:2016-03-24 03:30:58
【问题描述】:
我正在实施他们文档中给出的 firebase 示例。我正面临这个错误:
com.fasterxml.jackson.databind.JsonMappingException: 没有找到适合类型 [simple type, class com.XYZ.$BlogPost] 的构造函数:无法从 JSON 对象实例化(需要添加/启用类型信息?)
这是我的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user);
Firebase.setAndroidContext(this);
}
@Override
protected void onStart() {
super.onStart();
// Get a reference to our posts
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");
// Attach an listener to read the data at our posts reference
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println("There are " + snapshot.getChildrenCount() + " blog posts");
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
BlogPost post = postSnapshot.getValue(BlogPost.class);
System.out.println(post.getAuthor() + " - " + post.getTitle());
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
}
public class BlogPost {
private String author;
private String title;
public BlogPost() {
// empty default constructor, necessary for Firebase to be able to deserialize blog posts
}
public String getAuthor() {
return author;
}
public String getTitle() {
return title;
}
}
}
关于包含反序列化 JSON 所必需的空构造函数的同一件事,我已经经历了许多问题。我已将其包括在内,但我仍然无法解决问题。这是我试图反序列化的 JSON:
{
"-JRHTHaIs-jNPLXOQivY":{
"author":"gracehop",
"title":"Announcing COBOL, a New Programming Language"
},
"-JRHTHaKuITFIhnj02kE":{
"author":"alanisawesome",
"title":"The Turing Machine"
}
}
我不知道我的代码中缺少什么。感谢您提供任何重新评分的帮助。
【问题讨论】:
-
"-JRHTHaIs-jNPLXOQivY" 值没有键,并且列表没有用逗号分隔,json 对象已损坏
标签: java android json firebase firebase-realtime-database