Android gson.fromJson-反序列化失败

Android gson.fromJson-反序列化失败,android,gson,Android,Gson,我面临反序列化问题,因为我对两个不同的web响应使用相同的对象结构。在“搜索”中,我得到一个对象数组,而在“细节”中,我只得到一个对象 搜索代码: InputStream source = Helper.retrieveStream("http://<domainname>/search.jsp?action=search&q=" + query); Reader reader = new InputStreamReader(source); Gson gson = new

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

搜索代码:

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:///search.jsp?action=search&q=“+查询);
Reader Reader=新的InputStreamReader(源);
Gson Gson=新的Gson();
SearchObj searchResponse=gson.fromJson(reader,SearchObj.class);
详细代码:

InputStream source = Helper.retrieveStream("http://<domainname>/search.jsp?action=detail&id=" + id);
InputStream source=Helper.retrieveStream(“http:///search.jsp?action=detail&id=“+id);
从服务中,我得到了同一对象的响应hireachyTopObject->SearchResponse->response,但在第一种情况下(搜索),我得到了响应[]数组,在第二种情况下(详细信息),我得到了单个响应对象

显然,我的反序列化在第二个场景中失败了,因为代码期望的是响应数组而不是一个响应

我意识到我不能像更改注释@SerializedName属性的名称一样更改对象的名称


有什么建议吗?

使用Gson反序列化这样的JSON,有时是数组,有时是对象,需要自定义反序列化。此特定问题已在以前的StackOverflow线程中讨论过,例如。

创建另一个域对象并分别处理它们,TopObject->SearchResponse->Response[]&TopObject->DetailsResponse->Response。由于我无法注释类名,如何处理“Response”对象和“Response[]”单独的对象数组?也许您可以粘贴两个响应的JSON源?也请粘贴您的对象继承权。谢谢