JSONArray无法转换为JSONObject错误

在获取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);

}

以上是 JSONArray无法转换为JSONObject错误 的全部内容, 来源链接: utcz.com/qa/430048.html

回到顶部