一、JSONarray转List
在实际开发中我们常常需要对JSONarray进行去重等操作,但是JSONarray本身并不能直接进行去重操作,因此我们需要将JSONarray转为List。
JSONArray jsonArray = new JSONArray();
List<String> list = new ArrayList<String>();
for(int i = 0; i < jsonArray.length(); i++) {
list.add(jsonArray.getString(i));
}
通过for循环遍历JSONarray,将其中的每一个元素添加到List中,之后就可以对List进行去重等操作。
二、JSONarray如何遍历
JSONarray是一种轻量级的数据交换格式,在实际开发中经常用于数据交互。在对JSONarray进行操作时,我们需要对其中的数据进行遍历。
JSONArray jsonArray = new JSONArray();
for(int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
String name = obj.getString("name");
int age = obj.getInt("age");
System.out.println("name:" + name + ",age:" + age);
}
通过for循环遍历JSONarray,使用getJSONObject()方法得到每一个JSONObject对象,之后我们可以使用getString()方法获取其中对应的数据,如上方代码获取了name和age。
三、JSONarray排序
在实际开发中,我们经常需要对JSONarray中的数据进行排序操作以便更方便地使用。下面是一个对JSONarray中元素按照姓名进行排序的示例代码:
JSONArray arr = new JSONArray();
JSONObject obj1 = new JSONObject();
obj1.put("name", "A");
obj1.put("age", 21);
JSONObject obj2 = new JSONObject();
obj2.put("name", "C");
obj2.put("age", 20);
JSONObject obj3 = new JSONObject();
obj3.put("name", "B");
obj3.put("age", 22);
arr.put(obj1);
arr.put(obj2);
arr.put(obj3);
for(int i = 0; i < arr.length(); i++) {
for(int j = i + 1; j < arr.length(); j++) {
JSONObject obji = arr.getJSONObject(i);
JSONObject objj = arr.getJSONObject(j);
if(obji.getString("name").compareTo(objj.getString("name")) > 0) {
arr.put(i, objj);
arr.put(j, obji);
}
}
}
System.out.println(arr.toString());
如果我们需要对JSONarray中的数据按照某个属性进行排序,只需要在比较时更改if语句中的条件即可。
四、JSONarray获取值
我们可以使用getInt()、getString()等方法来获取JSONarray中对应的值。下面的示例代码是如何获取JSONarray中的最大值:
JSONArray arr = new JSONArray();
arr.put(1);
arr.put(5);
arr.put(3);
arr.put(7);
arr.put(2);
int max = arr.getInt(0);
for(int i = 1; i < arr.length(); i++) {
int temp = arr.getInt(i);
if(temp > max) {
max = temp;
}
}
System.out.println(max);
首先我们将数组中的第一个值设置为最大值,之后使用for循环进行遍历,每次循环都比较当前的值和之前的最大值,如果当前值更大则更新最大值。
五、JSONarray获取长度
JSONarray的长度可以使用length()方法获取,下面的示例代码展示了如何获取JSONarray的长度:
JSONArray arr = new JSONArray();
arr.put(1);
arr.put(5);
arr.put(3);
arr.put(7);
arr.put(2);
System.out.println(arr.length());
上方代码输出的结果为5,就是JSONarray中元素的数量。