如何将subList实现到JSONArray中

时间:2019-01-07 16:31:00

标签: java android

我一直在将它与ArrayList一起使用,但是现在我的整个代码更改为JSONArray,并且我无法再使用subList,我正在考虑将当前的JSONArray转换为arraylist以便使用,但是我不知道是否有一种类似的JSONArray方法,我已经检查了一个示例,并在使用subList,但对我来说它不起作用。

public JSONArray getList(int qty) {

        if (qty > orderedArray.length())
            qty = orderedArray.length();

        return orderedArray.subList(0, qty); //not working for me
    }

我看过this的示例,并且将subList与JSONArray一起使用,有任何提示吗?

2 个答案:

答案 0 :(得分:0)

您可以将JSONArray转换为List并使用子列表。

List listdata= new ArrayList();
for (int i=0;i<jsonArray.length();i++){ 
    listdata.add(jArray.getString(i));
   } 

现在按需使用listData

答案 1 :(得分:0)

您可以添加用于将JsonArray转换为ArrayList的实用程序类,并以干净的方式使用sublist方法。

这是该班级的样子。

import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;

public class ArrayUtil {


   public static ArrayList<Object> toArrayList(JSONArray jArr)
   {
      ArrayList<Object> list = new ArrayList<Object>();
      try {
         for (int i=0, i < jArr.length(); i++){
            list.add(jArr.get(i));
         }
      } catch ( JSONException e) {}

      return list;
   }

   public static JSONArray subJsonArray( JSONArray originalJsonArray, int fromIndex, int toIndex ) {

      ArrayList<Object> list = toArrayList( originalJsonArray );
      list.subList( fromIndex, toIndex );

      return new JSONArray( list );
   }
}