首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.lang.String类型的值结果不能转换为JSONObject

java.lang.String类型的值结果不能转换为JSONObject
EN

Stack Overflow用户
提问于 2013-11-13 07:20:07
回答 4查看 5.9K关注 0票数 0

我遇到了字符串无法转换为JSONObject.Anyone的问题,可以帮助解决这个问题吗?谢谢,非常感谢你的帮助。

代码语言:javascript
运行
复制
protected void onPostExecute(String result) {           
if (result==null || result.length()==0){
            // no result:
            return;
}

//clear the list
moviesList.clear();

try {
    //turn the result into a JSON object
    JSONObject responseObject = new JSONObject("results");

            // get the JSON array named "results"
    JSONArray resultsArray = responseObject.getJSONArray(result);

    // Iterate over the JSON array: 
    for (int i = 0; i < resultsArray.length(); i++) {
        // the JSON object in position i 
        JSONObject messageObject = resultsArray.getJSONObject(i);

    // get the primitive values in the object
        String title = messageObject.getString("title");
        String details = messageObject.getString("synopsis");

        //put into the list:
            Movie movie = new Movie(title, details, null,null);
        moviesList.add(movie);
    }
    } catch (JSONException e) {
        e.printStackTrace();
    }

    //refresh listView:
    adapter.notifyDataSetChanged();

    }
} 

结果有价值

错误在以下行中:

代码语言:javascript
运行
复制
JSONObject responseObject = new JSONObject("results");
EN

回答 4

Stack Overflow用户

发布于 2013-11-13 07:23:11

代码语言:javascript
运行
复制
    String obj=JSONObject.quote(YourData);
    JSONArray lArray=new JSONArray(obj);

    // or simply  Delete the prefix 'results'  from your php Code
    // $res2=array("results"=>$response);
    // and you will retrive directelly your JsonArray like 

    JSONArray lArray=new JSONArray(YouData);
票数 1
EN

Stack Overflow用户

发布于 2013-11-13 07:22:18

{"result":"blahblah"}

  • Or错误地,您在编写代码时在result中包含了双引号

JSONObject responseObject = new JSONObject("results");

由于result已经是一个字符串,请尝试将该行替换为:

JSONObject responseObject = new JSONObject(results);

票数 0
EN

Stack Overflow用户

发布于 2013-11-13 08:24:53

看起来你把这两行弄混了,这样试试:

代码语言:javascript
运行
复制
//turn the result into a JSON object
JSONObject responseObject = new JSONObject(result);

// get the JSON array named "results"
JSONArray resultsArray = responseObject.getJSONArray("results");

这是假设你从某个地方得到的JSON响应包含一个结果,而这个结果又包含了一个‘JSONObject’。

从您的代码示例中的注释判断,情况就是这样,这只是一个由于相似命名而导致的简单混淆。

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

https://stackoverflow.com/questions/19942016

复制
相关文章

相似问题

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