我的应用收到错误JSONException: Unterminated character at ...
,尽管它很常见,但它并不总是给出错误。
我不太确定这是代码还是与网络问题有关的东西,因为有时它确实工作得很好,有时却不能,即使从服务器发送的数据与它工作时的数据相同,并且如果没有的话。
我的过程是使用laravel以及使用API实现的laravel-passport来获取后端的帖子列表。
下面是我的laravel后端上的代码,但经过简化:
$response['posts'] = Post::all();
return response()->json($response);
在我的android应用程序上,我使用:
JSONArray jsonArrayPosts = response.getJSONArray("posts");
在我使用排球的所有网络请求上,我都有以下标头:
Map<String, String> params = new HashMap<>();
params.put("Accept", "application/json");
params.put("Authorization", "Bearer " + UserSingleton.getInstance().getUser().getAccess_token());
return params;
它可以工作,但是很常见,我在凌空抽空时收到网络错误
JSONException: Unterminated character at ...
我得到不一致的结果可能是什么问题?
答案 0 :(得分:0)
尝试以下流程,
1.分配标头授权,不带承载字和字符串值令牌。
2.在json对象中收集响应。
JsonObject jO_One=new JsonObject(response);
3.您需要一个json数组对象。
JsonArray jA_One=jO_One.getJsonArray("ArrayName");
4.为数组数据收集应用循环
for(int i=0;i<jA_One.length;i++){
JsonObject jO_Two=new JsonObject(i);
// collect your values from keys
int mobile=jO_Two.getInt("mobiles");
// now, you can store it into your
//arraylist or whatever you are using in here...
}
5。完成。