当前位置: 首页 > 知识库问答 >
问题:

android中的Json解析类型不匹配错误

连德水
2023-03-14

我正在尝试解析我的json数据

{
"000000000000000": [
    {
        "employee_boycode": "00",
        "id": "000",
        "address": "abcdef",
        "name": "name",
        "bankcode": "abc",
        "branch_name": "abcd",
        "account_no": "789"
    }
]
}

我解析数据的代码是

JSONObject jsnJsonObject = new JSONObject(jsonResponse);//error coming here

contacts = jsnJsonObject.getJSONArray("000000000000000");

for (int i = 0; i < contacts.length(); i++)
{       
    JSONObject c = contacts.getJSONObject(i);
    id = c.getString("id");
    boy_code = c.getString("employee_boycode");
    name = c.getString("name");
    address = c.getString("address");
    branch_name = c.getString("branch_name");
    bankcode = c.getString("bankcode");
    account_no = c.getString(account_no);
}

我得到了错误

01-17 12:51:41.280: V/response is(481): {"000000000000000":[{"employee_boycode":"012","id":"100","address":"sdfsfsdfsdf","name":"karan","bankcode":"HDFC","branch_name":"SARANGPUR","account_no":"100"}]} 
01-17 12:51:50.900: I/System.out(481): ServerEncodedResponse id 01-17 12:51:50.910: I/System.out(481): {"000000000000000":[{"employee_boycode":"012","id":"100","address":"sdfsfsdfsdf","name":"karan","bankcode":"HDFC","branch_name":"SARANGPUR","account_no":"100"}]}
 01-17 12:52:14.950: W/return(481): r2 
01-17 12:52:14.950: W/return(481): r3 
01-17 12:52:20.951: D/SntpClient(70): request time failed: java.net.SocketException: Address family not supported by protocol 01-17 
12:53:13.120: W/System.err(481): org.json.JSONException: Value of type java.lang.String cannot be converted to JSONObject
 01-17 12:53:13.210: D/dalvikvm(481): GC_FOR_MALLOC freed 3676 objects / 194656 bytes in 94ms
 01-17 12:53:13.220: W/System.err(481): at org.json.JSON.typeMismatch(JSON.java:107)
 01-17 12:53:13.220: W/System.err(481): at org.json.JSONObject.(JSONObject.java:158) 
01-17 12:53:13.300: W/System.err(481): at org.json.JSONObject.(JSONObject.java:171)

共有1个答案

田翔
2023-03-14

试试这个代码,它应该可以工作,

private void parseJson() {
    // TODO Auto-generated method stub
    String strJson="{\n\"000000000000000\": [\n    {\n        \"employee_boycode\": \"00\",\n        \"id\": \"000\",\n        \"address\": \"abcdef\",\n        \"name\": \"name\",\n        \"bankcode\": \"abc\",\n        \"branch_name\": \"abcd\",\n        \"account_no\": \"789\"\n    }\n]\n}\n";

    try {
    JSONObject jsnJsonObject = new JSONObject(strJson);


        JSONArray contacts = jsnJsonObject.getJSONArray("000000000000000");

        for (int i = 0; i < contacts.length(); i++)
        {       
            JSONObject c = contacts.getJSONObject(i);
            String id = c.getString("id");
            String boy_code = c.getString("employee_boycode");
            String name = c.getString("name");
            String address = c.getString("address");
            String branch_name = c.getString("branch_name");
            String bankcode = c.getString("bankcode");
            String account_no = c.getString("account_no");

            Log.e("Parsed data is",":"+id+" :"+boy_code+" :"+name+" :"+address+" :"+branch_name+" :"+bankcode+" :"+account_no);
        }

    } catch (JSONException e) {

        e.printStackTrace();
    }


}
 类似资料:
  • 问题内容: 链接是 http://iipacademy.in/askpoll/ten_feed.php 异常在onPostExecute()方法(第4行)中: LOGCAT: 消息是一个数组,所以它的代码应该是什么或如何解决? 提前致谢 。。。 问题答案: 看起来响应是一个字符串而不是json数组 结果是一个json对象而不是json数组 应该

  • 我有以下具有以下方法的类。 GsonHelper为我提供了一些 在Java 7之前,我一直使用这种方法,例如: 这工作得很好。因为这个方法会返回一个布尔值,我可以在“if”中使用它。但是当我换到Java 8时,这就不可能了。编译器抱怨: 类型不匹配:无法从对象转换为布尔值 我知道java.lang.Boolean可以为空。我可以通过以下方式解决这个问题: 但我很好奇,为什么这在Java 7中有效,

  • 错误:java.io.ioException:错误值类:类org.apache.hadoop.io.text不是类org.apache.hadoop.mapred.ifile$writer.append(ifile.java:194)在org.apache.hadoop.mapred.task$combineoutputCollector.collect(task.java:1350)在org.a

  • 问题内容: 我试图在Swift中使用JSONDecoder将JSON转换为Structs,所以我编写了所有Structs,将它们修改了几个小时,但它仍然给我这个错误。我不知道是否有办法查看给出此信息的行。我将在下面发布我的struct,并在其后发布Json File链接。 完整的错误描述是: typeMismatch(Swift.Dictionary ,Swift.DecodingError.Co

  • 首先,我对处理HTTP请求和其他东西非常陌生。 我jave在JavaSpring中创建了一个API,我有一堆健身程序分配给一个用户,但是当我试图从Flutter中的JSON中获取对象时,会发生这个错误。我使用超文本传输协议和转换镖包。 列表不是类型映射的子类型 问题在于这一行: 这是getUsers方法: 以下是用户和健身计划课程:

  • 问题内容: 我已经在Fxml中使用onEditCommit事件在用户编辑数据后检索数据。 FXML代码-: 实现了onEditCommit事件-: 错误-: 完整代码-: Record.java(获取设置程序) 请帮助我解决此错误,应在onEditCommit事件实现中放置哪种类型。我已经打印了列单元格值工厂 并得到 EditingCell.java-: 问题答案: 您的事件处理程序类型对我来说不