我的代码有问题,
我有一个json数组
[{"Response":{"data":"sibin1"}},{"Response":{"data":"sibin2"}},
{"Response": {"data":"sibin3"}}]
我试图使用下面的代码提取json数据,这里我只添加了一些coode的部分
JSONArray finalResult = new JSONArray(tokener);
int finalresultlengt=finalResult.length();
JSONObject json_data = new JSONObject();
for (int i = 0; i < finalResult.length(); i++)
{
json_data = finalResult.getJSONObject(i);
System.out.println("json dataa"+json_data.names().toString());
JSONObject menuObject = json_data.getJSONObject("Response");
result= menuObject.getString("data");
System.out.println(result);
}
代码运作良好
当值
时 i=0 ,result is sibin1
i=1 ,result is sibin2
i=2 ,result is sibin3
但我的问题是,我需要将结果存储在给定for循环内的长度finalresultlength的字符串数组中,我还需要在给定for循环外的for循环中打印字符串数组中的值 如果有人知道请帮助我............
答案 0 :(得分:3)
你也可以这样做。
创建一个大小为'finalresultlengt'的ArrayList并添加值。
list.add(result); // variable 'result' in your case is the value from JSON
如果要添加更多值,请创建POJO类。
class POJO {
private String dataVal;
public void setDataVal(String dataVal) {
this.dataVal = dataVal;
}
public String getDataVal() {
return dataVal;
}
}
然后创建一个POJO类型的ArrayList。
ArrayList<POJO> list = new ArrayList<POJO>(finalresultlengt);
修改
JSONArray finalResult = new JSONArray(tokener);
int finalresultlengt=finalResult.length();
JSONObject json_data = new JSONObject();
ArrayList<String> list = new ArrayList<String>(finalresultlengt);
for (int i = 0; i < finalResult.length(); i++) {
json_data = finalResult.getJSONObject(i);
System.out.println("json dataa"+json_data.names().toString());
JSONObject menuObject = json_data.getJSONObject("Response");
result= menuObject.getString("data");
list.add(result);
}
从ArrayList填充值。
for(String value : list)
System.out.println(value);