Android: Select ApiService 中响应的一部分 json 通过改造
Android: Select a part of response json in ApiService by retrofit
我在 android.The 中使用 Rx、retrofit、dagger 和 MVP 模型来自服务器的响应就像打击:
"User": {
"Address": " ",
"BirthDate": "1395/09/28",
"ConditionFields": [],
"CreateDate": "/Date(1482048048370+0330)/",
"Enabled": true,
"Export": " ",
"FirstName": "kia",
"GUID": "1eaceb23-eace-4cf0-be4d-6d5be338ca46",
"Groups": [],
"JobLocation": "2D2722C1-B9AC-4849-AE12-89FCBF6A3A2D",
"JobLocationName": "",
"JobLocations": {..},
....
这是我的一部分 json response.This 回复是巨大的 json 对象。在我的 api 服务中,我的方法 return Observable>。这是完整的 api 服务:
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<Response<String>> getUserLogin(
@Body RequestBody params);
当我 运行 我的应用程序出现此错误时:
java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $
我想我知道我的问题是什么,这个错误是因为服务器 returned a json object
但我声明 Response<String>
.
正如我之前所说,服务器的响应很大,我的应用程序中没有使用 must of 属性,我不想创建 pojo class 具有所有属性以将所有 json 信息存储在内存中并使用设备的 memory.So 为了,我希望 json 响应的 select 部分完全在 api 服务中方法。
我该怎么做?
使用 link 为 JSON 创建 POJO class
http://www.jsonschema2pojo.org/
生成 POJO 后删除不需要的字段。
更改方法 return 输入 Observable<Response<String>>
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<Response<String>> getUserLogin(@Body RequestBody params);
至Observable<YourPojo>
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<YourPojo> getUserLogin(@Body RequestBody params);
我在 android.The 中使用 Rx、retrofit、dagger 和 MVP 模型来自服务器的响应就像打击:
"User": {
"Address": " ",
"BirthDate": "1395/09/28",
"ConditionFields": [],
"CreateDate": "/Date(1482048048370+0330)/",
"Enabled": true,
"Export": " ",
"FirstName": "kia",
"GUID": "1eaceb23-eace-4cf0-be4d-6d5be338ca46",
"Groups": [],
"JobLocation": "2D2722C1-B9AC-4849-AE12-89FCBF6A3A2D",
"JobLocationName": "",
"JobLocations": {..},
....
这是我的一部分 json response.This 回复是巨大的 json 对象。在我的 api 服务中,我的方法 return Observable>。这是完整的 api 服务:
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<Response<String>> getUserLogin(
@Body RequestBody params);
当我 运行 我的应用程序出现此错误时:
java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $
我想我知道我的问题是什么,这个错误是因为服务器 returned a json object
但我声明 Response<String>
.
正如我之前所说,服务器的响应很大,我的应用程序中没有使用 must of 属性,我不想创建 pojo class 具有所有属性以将所有 json 信息存储在内存中并使用设备的 memory.So 为了,我希望 json 响应的 select 部分完全在 api 服务中方法。
我该怎么做?
使用 link 为 JSON 创建 POJO class http://www.jsonschema2pojo.org/
生成 POJO 后删除不需要的字段。
更改方法 return 输入 Observable<Response<String>>
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<Response<String>> getUserLogin(@Body RequestBody params);
至Observable<YourPojo>
@POST(UrlManager.LOGIN+"CheckOtherUserLogin")
Observable<YourPojo> getUserLogin(@Body RequestBody params);