当前位置: 首页 > 面试题库 >

JSONArray无法转换为JSONObject错误

曾光远
2023-03-14
问题内容

在获取json数据时出现错误:

JSONArray无法转换为JSONObject

JSON生成代码:

JSONObject parent = new JSONObject();
DatabaseHandler dbh = new DatabaseHandler(getApplicationContext());  
            for(int i=0; i < allEds.size(); i++){
                String edsText = allEds.get(i).getText().toString();                                           
               //spinner = allSpns.get(i);
               String spinSelected=allSpns.get(i).getSelectedItem().toString();                  
               try
                {
                   JSONObject json = new JSONObject();          
                   json.put("Id", i);
                   json.put("FieldName", edsText);
                   json.put("FieldType",spinSelected);
                   parent.accumulate("data", json);



                }
                catch (JSONException e)
                {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }

            }
Generated json is   
            {"data":
[{"FieldType":"Account Number","FieldName":"r","Id":0},
  {"FieldType":"Net      Banking Id","FieldName":"tt","Id":1}
 ]}
code for json read
------------------
JSONObject jsonObj = new JSONObject(folderStructure);
        JSONObject data = jsonObj.getJSONObject("data"); 
        String id = data.getString("Id"); 
        String value = data.getString("FieldName"); 
        Log.d("Item name: ", value);

在阅读上述json时遇到错误代码有什么问题吗?


问题答案:

更改

JSONObject data = jsonObj.getJSONObject("data");

JSONArray data = jsonObj.getJSONArray("data");

作为数据值的是JsonArray而不是JSONObject。

为了获取单个ID和字段名称,您应该遍历此JSONArray,如下所示:

for(int i=0; i<data.length(); i++)
{
     JSONObject obj=data.getJSONObject(i);
     String id = obj.getString("Id"); 
        String value = obj.getString("FieldName"); 
        Log.d("Item name: ", value);
}


 类似资料:
  • 问题内容: 基本上我有: 现在,我想将其转换为包含相同信息的。这样我就可以绕过对象,然后在需要时可以从对象中获取所有信息。任何帮助,将不胜感激,谢谢。 问题答案: 通常,Json对象将包含您的值(包括数组)作为其中的命名字段。因此,类似: 在JSON中将是{“ arrayName”:[…]}。

  • 我是JSON的新手,但我尝试使用所有的答案,但都不起作用。请帮帮我,我做错了什么。 } 我的JSON用于解析。

  • 问题内容: 在json中工作时出现异常。我的JSONPresr类如下 我正在通过这些代码获取数据 但是我非常惊讶地在这一行中获得异常 我的股权跟踪消息为 我尝试了许多链接,但不幸的是我无法获得结果。请任何人帮助我解决这个问题。在此先感谢所有人 问题答案: 从错误中可以明显看出,您正在尝试将Json Object转换为Json数组。那不应该。 这是读取您的JSON响应的代码。 上面的代码用于JSON

  • 问题内容: 我是新手,但正在收到以下异常: 在try部分的第一行本身。 请帮助我删除它。这是我的代码: 这是我从我的php文件中获取的json 问题答案: 这个 应该 表示json数组节点 表示json对象节点

  • } 我正在使用以下代码: 我得到了一条错误消息: