0

我的代码有问题,

我有一个 json 数组

                [{"Response":{"data":"sibin1"}},{"Response":{"data":"sibin2"}},
                              {"Response": {"data":"sibin3"}}]

我正在尝试使用以下代码提取 json 数据,这里我只添加了部分代码

                 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 循环中打印字符串数组中的值,请帮助我............

4

1 回答 1

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);
于 2013-02-14T09:25:18.667 回答