gpt4 book ai didi

android - gson.fromJson - 反序列化失败

转载 作者:行者123 更新时间:2023-11-29 02:10:01 25 4
gpt4 key购买 nike

我面临反序列化问题,因为我对两个不同的网络响应使用相同的对象结构。在“搜索”中,我得到了一组对象,而在“详细信息”中,我只得到了一个对象。

搜索代码:

InputStream source = Helper.retrieveStream("http://<domainname>/search.jsp?action=search&q=" + query);
Reader reader = new InputStreamReader(source);
Gson gson = new Gson();
SearchObj searchResponse = gson.fromJson(reader, SearchObj.class);

详细代码:

InputStream source = Helper.retrieveStream("http://<domainname>/search.jsp?action=detail&id=" + id);

从服务中我得到相同对象 hireachy TopObject -> SearchResponse -> Response 的响应,但在第一种情况下(搜索)我得到 Response[] 数组,在第二种情况下(详细信息)我得到单个响应对象。

显然,我的反序列化在第二种情况下失败了,因为代码需要响应数组而不是只有一个响应。

我意识到我不能更改对象的名称,就像我可以使用注释@SerializedName 更改属性的名称一样。

有什么建议吗?

最佳答案

使用 Gson 反序列化有时是数组有时是对象的 JSON 需要自定义反序列化。此特定问题已在以前的 StackOverflow 线程中涵盖,例如 Parsing JSON with GSON, object sometimes contains list sometimes contains object .

关于android - gson.fromJson - 反序列化失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040101/

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