首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Volley返回JSONException:字符处未终止的对象

Volley返回JSONException:字符处未终止的对象
EN

Stack Overflow用户
提问于 2018-12-29 20:07:38
回答 1查看 106关注 0票数 0

我的应用程序收到错误JSONException: Unterminated character at ...,但它并不总是给出错误,尽管它非常频繁。

我不太确定是代码还是与网络问题有关的问题,因为有时它工作得很好,有时不工作,即使从服务器发送的数据与它工作时和不工作时是一样的。

我的过程是使用laravel获取后端的帖子列表,并使用API实现laravel-passport。

以下是我的laravel后端的代码,但经过简化:

代码语言:javascript
复制
$response['posts'] = Post::all();
return response()->json($response);

在我的android应用程序上,我是这样读的:

代码语言:javascript
复制
JSONArray jsonArrayPosts = response.getJSONArray("posts");

在我使用volley的所有网络请求中,我有以下标头:

代码语言:javascript
复制
Map<String, String> params = new HashMap<>();
params.put("Accept", "application/json");
params.put("Authorization", "Bearer " + UserSingleton.getInstance().getUser().getAccess_token());
return params;

它是有效的,但相当频繁,我收到一个网络错误,在volley上说

JSONException: Unterminated character at ...

我得到的结果不一致的问题可能是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-12-29 20:52:35

试试这个流程,

  1. 分配header授权,不带承载字和字符串值token。
  2. 在json对象中收集响应。

JsonObject jO_One=new JsonObject(response);

  • You需要一个json数组对象。

为阵列数据收集执行循环

代码语言:javascript
复制
    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...   
    }  

  1. Done.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53969370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档