gpt4 book ai didi

java - 从 api.facebook.com 解析 json

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:51 25 4
gpt4 key购买 nike

如何解析 json from this link使用java(对于独立的java应用程序)?我尝试了 gson 和 Jackson 库,但它们似乎有问题,因为这个 json 的格式看起来不同。

你是怎么做到的?

鉴于 facebook 的受欢迎程度,我希望找到一些可以做到这一点的 jars/lib。非常欢迎带有示例的建议。非常感谢。

Response.java

public class Response{
private List<Comments> commentslist;

public List<Comments> getCommentsList() {
return commentslist;
}

public void setCommentsList(List<Comments> commentslist) {
this.commentslist = commentslist;
}
}

Comments.java

public class Comments{
private Number count;
private List<Data> data;

public Number getCount(){
return this.count;
}
public void setCount(Number count){
this.count = count;
}
public List<Data> getData(){
return this.data;
}
public void setData(List<Data> data){
this.data = data;
}
}

From.java

public class From{
private Number id;
private String name;

public Number getId(){
return this.id;
}
public void setId(Number id){
this.id = id;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}

Data.java

public class Data{
private Number created_time;
private From from;
private Number id;
private String message;

public Number getCreated_time(){
return this.created_time;
}
public void setCreated_time(Number created_time){
this.created_time = created_time;
}
public From getFrom(){
return this.from;
}
public void setFrom(From from){
this.from = from;
}
public Number getId(){
return this.id;
}
public void setId(Number id){
this.id = id;
}
public String getMessage(){
return this.message;
}
public void setMessage(String message){
this.message = message;
}
}

使用 gson 进行转换尝试失败

Response response = gson.fromJson(contents, Response.class); //contents is json string
System.out.println(response.getCommentsList()); // comes back as null

如果json正常,是不是我的java模型有问题?

最佳答案

您正在尝试将 JSON 响应(这是一个对象数组)反序列化为带有评论(Comments)列表(commentList)的对象(Response)。存在类型/结构不匹配,GSON 将无法反序列化。

尝试做类似的事情:

Gson gson = new Gson();
Type collectionType = new TypeToken<List<Response>>(){}.getType();
List<Comments> commentList = gson.fromJson(yourJsonString, collectionType);

并将您的 Response 对象更改为:

public class Response{
private Comments comments;

public Comments getComments() {
return comments;
}

public void setComments( Comments comments) {
this.comments= comments;
}
}

来自 fb 的 json 是一个响应(匿名)对象列表,其中有 1 个称为注释的字段。尽管有这个名字,评论实际上是一个对象。

关于java - 从 api.facebook.com 解析 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11781807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com