K2D*_*tal 0 java rest android json
我有一个iOS应用程序和一个与RESTFul Web服务一起使用的Android应用程序.
当我对服务进行查询时,我得到一个返回的JSON对象.
[
{
"id": 21,
"device_id": "xxxxxxxxxxx",
"api_key": "yyyyyyyyyy",
"customer_id": 28,
"created_at": "2014-12-08T11:21:01.517Z",
"updated_at": "2014-12-13T04:40:44.295Z",
"registered_at": "2014-12-08T11:22:49.960Z",
"install_date": "2014-11-18",
"serial_number": "1121113",
"last_communication_at": "2014-12-13T04:40:44.283Z",
"avg": null,
"min": null,
"max": null,
"usage_updated_at": null,
"usage_period_days": null,
"settings_change_upload_interval": 5,
"stats_upload_interval": 1440
}
]
Run Code Online (Sandbox Code Playgroud)
iOS在检索和解析JSON信息方面没有问题.
在Android上我试图使用JSONObject来序列化我得到的响应(顺便说一句,我从URL请求获得了200的有效状态代码)
JSONObject myObject = new JSONObject(result);
Run Code Online (Sandbox Code Playgroud)
但这是一个例外,说JSONObject的格式不正确.
我有其他API调用正常工作,所以这是导致问题的特定JSONObject的问题.是因为它们中的一些值返回为null,因为它们尚未在数据库中设置?
就像我说的,这个数据包的iOS JSON序列化工作正常.
您正在尝试将数组解析为object,这就是它给出异常的原因.另外,不要忘记try-catch在它周围放一块.
用这个
try
{
JSONArray myArr = new JSONArray(result);
JSONObject myObj = myArr.getJSONObject(0);
int id = myObj.getInt("id");
}
catch (JSONException e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |