Android 中的 JSON 错误“java.lang.String 类型结果的值无法转换为 JSONArray”

2024-06-10

我用的是link http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/对于 JSON RPC。我得到了预期的答复。但是当我尝试解析响应时,它给了我 json 错误。

My code:

JSONEntity entity = new JSONEntity(jsonRequest);
    HttpPost request = new HttpPost("http://192.168.1.150/jsondemo12/service.asmx");
    request.setEntity(entity);
    HttpResponse response = httpClient.execute(request);
    StatusLine statusLine = response.getStatusLine();
    int statusCode = statusLine.getStatusCode();
    if (statusCode == 200) {
        HttpEntity httpEntity = response.getEntity();
        InputStream content = httpEntity.getContent();

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(content,"iso-8859-1"),8);
        String line;
        while ((line = reader.readLine()) != null) {
            builder.append(line);
        }
        content.close();
    } else {
        Log.e(AndroidJSONActivity.class.toString(), "Failed to download file");
    }


    strJSONValue=builder.toString();

    txtViewParsedValue.append("\n+++++++++++++\n"+strJSONValue+"\n");
    try {
        parseJSON();
    } catch (JSONException e) {
        Log.e("error","Error while parsing!!!");
        e.printStackTrace();
    }
    Log.e("response", strJSONValue);
public void parseJSON() throws JSONException
    {
        String attr1="",attr2="";
        jsonObject = new JSONObject(strJSONValue);
        JSONArray  result = jsonObject.getJSONArray("result");    <- Error in this line!!!
        for(int i=0;i < result.length();i++){
            JSONObject e = result.getJSONObject(i);
            attr1 = "ExhibitorID: "+ e.getString("ExhibitorID");
            attr2 = "ExhibitorName: "+e.getString("ExhibitorName");
        }
        strParsedValue=attr1+"\n"+attr2;
        Log.d("Parse", attr1);
        Log.d("Parse", attr2);

        txtViewParsedValue.append("\n**********\nParsed Value: \n");
        txtViewParsedValue.append(strParsedValue);
    }

我在“strJSONValue”中得到的结果是字符串格式,没有开始和结束双引号。 喜欢:

{"id":2,"result":"[
{\"ExhibitorID\":42, etc....}
]"}

结果字符串符合要求,但我无法根据要求将字符串解析为 JSON 对象。它在 Logcat 中给出错误:org.json.JSONException: Value <content of the string> at result of type java.lang.String cannot be converted to JSONArray

请帮我。 谢谢


你的结果实际上返回一个字符串而不是 json 数组。如果你的 json 格式是这样的,它将返回 json 数组

{
  "id": 2,
  "result": [
    {
      "ExhibitorID": 42
    }
  ]
}

目前它是这种形式:

{
  "id": 2,
  "result": "[ {\"ExhibitorID\":42, etc....} ]"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的 JSON 错误“java.lang.String 类型结果的值无法转换为 JSONArray” 的相关文章

随机推荐

  • 实体框架 4.1 代码优先外键 ID

    我有两个一对多引用的实体 当实体框架创建表时 它会创建两个外键 一个用于我使用 Fluent 接口指定的键 另一个用于 ICollection 如何删除重复的外键 public class Person public long Record
  • 如何使用布局检查器检查警报对话框的布局?

    我试图理解 AlertDialog 中元素的间距 AlertDialog 是使用 AlertDialog Builder 创建的 并包含一个自定义 ListView 通过设置setView 当应用程序在我的设备上 通过 USB 进行调试时
  • 开放层。如何刷新集群?

    我动态地将功能添加到集群中 但是 据我所知 集群不起作用 我的图层定义如下 var source new ol source Vector var cluster new ol source Cluster distance 10 sour
  • IOS:从故事板中的原型单元中触发多个segues

    有没有办法将原型单元连接到不同的场景 并在 didSelectRowAtIndexPath 方法上调用 self PerformSegueWithIdentifier NAMEOFTHESEGUE sender self 我似乎无法将多个
  • AJAX 请求返回 200 OK 但失败,尽管返回数据是 JSON

    Edit 就我而言 它没有返回正确信息的原因是我试图使用 JSONP 连接到 CORS 数据设置 而服务器没有为我的特定计算机访问设置它 我需要与某人交谈并调整服务器配置文件的权限 这就是真正发生的事情 我无法弄清楚 因为我认为 CORS
  • dateutil 2.5.0 是所需的最低版本

    我正在 Mac OSX v 10 13 6 上运行 jupyter 笔记本 Enthought Canopy python distribution 2 7 当我尝试导入 pandas 将 pandas 导入为 pd 时 我收到投诉 Imp
  • Java:当线程池中的所有线程都完成时通知主类/不同线程中的对象的同一实例

    我如何通知我的主类实例化ThreadPoolExecutor当所有线程在ThreadPoolExecutor完成了吗 ThreadPoolExecutor threadPool null ThreadClass threadclass1 T
  • Firestore 的离线数据保存限制是多少?

    Firebase 数据库根据其文档提供了 10 MB 的离线数据库缓存限制 但没有提及离线数据限制火库数据库 Firestore 的离线数据保存限制是多少 根据 Firebase 支持团队的回答 目前 缓存数据的大小没有限制火库然而 这种缺
  • 使用 SWT 显示父模式对话框

    AWT Swing 允许显示应用程序模式 阻止整个应用程序 和父模式 仅阻止父级 对话框 如何使用 SWT 实现相同的目标 为了阻止整个应用程序 您可以创建对话框Shell与风格SWT APPLICATION MODAL 打开它 然后泵送
  • 以编程方式更改对象的位置

    我尝试过以下代码 this balancePanel Location X this optionsPanel Location X 更改我在程序运行时在设计模式下制作的面板的位置 但它返回错误 无法修改 System Windows Fo
  • 验证电子邮件地址是否包含“@”和“.”

    我需要验证插入的电子邮件地址是否包含 和 没有正则表达式 有人能给我 java代码 和 结构图 的例子吗 I suspect你正在追求类似的东西 if address contains address contains Handle bad
  • super 在多重继承中无用? [复制]

    这个问题在这里已经有答案了 在多重继承中 super 如何工作 例如这里我有两个init我想通过 super 发送参数 class LivingThings object def init self age name self name n
  • Visual C++ MFC 中窗口启动时的事件顺序

    假设我有一个从 CWnd 派生的类 它具有事件处理函数OnPaint OnCreate and OnSize 如您所知 所有这些都是在窗口启动时发生的 但我想看看它们之间的顺序是什么 例如 当我在其中一个中设置断点时 在结束函数后 控制不会
  • 区分 virturalenvwrapper 的 mkvirtualenv 和 mkproject

    我正在谈论Doug Hellman 的 virtualenvwrapper http www doughellmann com docs virtualenvwrapper 好吧 按照他的说法 一旦我们安装了 virtualenvwrapp
  • GTK+ (GTKSharp) 在 Windows 中性能不佳

    在我的跨平台 Mono C 项目中 我使用 GTK 作为 UI 然而我注意到的一件事是 在我的 Archlinux 上网本上 性能非常快 因此诸如鼠标悬停和重新绘制小部件等事件都非常快 与双核CPU上的Windows 7 相比 性能确实很弱
  • AssociationSet 中的关系处于“已删除”状态

    我正在尝试在我的网站中创建新帖子 但由于某种原因 EF 抛出以下错误 来自 PostAttributeValue Definition 关联集的关系 处于 已删除 状态 给定多重约束 相应的 PostAttributeValue Defin
  • NHibernate HQL SELECT 子查询中的 TOP

    有没有办法在子查询上使用 SetMaxResult 我正在编写一个查询以返回属于最新订单的所有订单项 所以我需要限制子查询的记录数 等效的 sql 看起来像这样 SELECT i FROM tbl Orders o JOIN tbl Ord
  • 如何在pyqt5中创建小部件来显示谷歌地图

    如何从用户那里获取纬度和经度并在 pyqt5 小部件的地图上显示该位置 我的操作系统是Windows 我找到了这个链接 https github com eyllanesc qMap https github com eyllanesc q
  • bool 是否保证为 1 个字节?

    The Rust 文档 https doc rust lang org reference html primitive types是模糊的bool s size 它是否保证为 1 个字节 还是像 C 中那样未指定 fn main use
  • Android 中的 JSON 错误“java.lang.String 类型结果的值无法转换为 JSONArray”

    我用的是link http p xr com android tutorial how to parse read json data into a android listview 对于 JSON RPC 我得到了预期的答复 但是当我尝试