gpt4 book ai didi

java - 如何解析包含数组的空值 JSON

转载 作者:行者123 更新时间:2023-12-01 14:43:27 25 4
gpt4 key购买 nike

我应该收到这样的JSON

{
"browse": [
{
"title": "Program Translations"
}
],
"errorno": "fe_200",
"message": "Your browse history"
}

但是由于没有浏览信息,我得到的是这样的..

{"errorno":"fe_3946","message":"No browse history found.","browse":"NULL"}

这是完全正常的。

我写了这样的java类..

class BrowseHistoryJson {

public BrowseHistoryJson() {}

private String errorno;
private String message;
private List<Browse> browse;
// other attributes

public String getErrorNo() {
return errorno;
}
public String getMessage() {
return message;
}
public List<Browse> getResults() { return browse; }
public void setErrorNo(String errorno) {
this.errorno = errorno;
}
public void setMessage(String message) {
this.message = message;
}

public void setResults(List<Browse> browse) { this.browse = browse; }
public String toString() { return "Results[" + browse + "]";}


static class Browse {
private String title;


public String getTitle() {
return title;
}


public void setTitle(String title) {
this.title = title;
}


public String toString() { return "Result[title:" + title +"]"; }
}

}

现在当我执行语句时

BrowseHistoryJson 结果 = new Gson().fromJson(reader, BrowseHistoryJson.class);

我遇到了类似的异常

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 74   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:795)
at com.google.gson.Gson.fromJson(Gson.java:734)

当我在浏览中获取数组中的数据时,它工作得非常好。

如何添加 null 处理,例如预先声明该值可能为 null 的某种方式?

我检查了 JSON 注释并在互联网上搜索,但没有什么真正有用的。

最佳答案

您需要使用 GsonBuilder 对象来创建 Gson 对象。

Gson gson = new GsonBuilder().serializeNulls().create();//handle null

当您这样做时,gson 将适本地处理 null。

关于java - 如何解析包含数组的空值 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709733/

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