在日常开发中,对于jsonstring或jsonarray的操作是非常常见的。其中对jsonarray的排序是一项基本操作,而其中的sort方法则是一个非常重要的方法。本文将对sort方法进行详细阐述,包括jsonarray的遍历、获取值、添加数据、转数组、pythonarray排序、jsonArray和jsonObject的使用等。
一、jsonarray排序
JsonArray提供了sort方法可以帮助我们快速对jsonarray进行排序。sort方法默认按升序操作。
JsonArray jsonArray = new JsonArray(); jsonArray.add(4); jsonArray.add(2); jsonArray.add(1); jsonArray.add(3); jsonArray.sort(); System.out.println(jsonArray.toString());
执行上述代码,输出为[1,2,3,4]。可以看出,sort默认按升序排序。
sort还提供了一个参数,可以自定义排序方法。例如,对下面的jsonarray进行降序排序。
JsonArray jsonArray = new JsonArray(); jsonArray.add(4); jsonArray.add(2); jsonArray.add(1); jsonArray.add(3); jsonArray.sort((o1, o2) -> o2.getAsInt() - o1.getAsInt()); System.out.println(jsonArray.toString());
执行上述代码,输出为[4,3,2,1]。可以看出,利用Lambda表达式重写排序方法,实现降序排序。
二、jsonarray如何遍历
jsonarray提供了多种遍历的方式,例如for循环:
JsonArray jsonArray = new JsonArray(); jsonArray.add("apple"); jsonArray.add("banana"); jsonArray.add("orange"); for(int i=0;i执行上述代码,输出为apple,banana,orange。可以看出,通过for循环并利用get方法获取元素值。
另一种遍历方式为增强for循环:
JsonArray jsonArray = new JsonArray(); jsonArray.add("apple"); jsonArray.add("banana"); jsonArray.add("orange"); for(JsonElement element: jsonArray){ System.out.println(element.getAsString()); }执行上述代码,输出为apple,banana,orange。可以看出,利用增强for循环遍历jsonarray更加方便简洁。
三、jsonarray获取值
JsonArray提供了getAsXXX方法直接获取元素值。
JsonArray jsonArray = new JsonArray(); jsonArray.add(4); jsonArray.add("banana"); jsonArray.add(true); System.out.println(jsonArray.get(0).getAsInt()); System.out.println(jsonArray.get(1).getAsString()); System.out.println(jsonArray.get(2).getAsBoolean());执行上述代码,输出为4, banana, true。可以看出,通过getAsXXX方法获取元素值非常方便。
四、jsonarray添加数据
JsonArray提供了多个add方法,可以很方便的添加新元素。
JsonArray jsonArray = new JsonArray(); jsonArray.add(1); jsonArray.add("banana"); jsonArray.add(false); JsonArray newArray = new JsonArray(); newArray.add("orange"); newArray.add(2); jsonArray.add(newArray); System.out.println(jsonArray.toString());执行上述代码,输出为[1,"banana",false,["orange",2]]。可以看出,通过add方法新增元素非常方便。
五、jsonArray转数组
JsonArray提供了一种方便的方法将jsonarray转为数组。
JsonArray jsonArray = new JsonArray(); jsonArray.add(1); jsonArray.add("banana"); jsonArray.add(false); Object[] arr = new Gson().fromJson(jsonArray, Object[].class); System.out.println(Arrays.toString(arr));执行上述代码,输出为[1, banana, false]。可以看出,通过fromJson方法将jsonarray转为普通数组非常方便。
六、遍历jsonArray
JsonArray提供了forEach方法可以遍历jsonarray。
JsonArray jsonArray = new JsonArray(); jsonArray.add(4); jsonArray.add(2); jsonArray.add(1); jsonArray.add(3); jsonArray.forEach(element -> { System.out.println(element.getAsInt()); });执行上述代码,输出为4, 2, 1, 3。可以看出,通过forEach方法遍历jsonarray非常方便。
七、list转jsonArray
JsonArray提供了一种方便的方法将list转为jsonarray。
List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); JsonArray jsonArray = new Gson().toJsonTree(list, new TypeToken<List<Integer>>() {}.getType()).getAsJsonArray(); System.out.println(jsonArray.toString());执行上述代码,输出为[1,2,3]。可以看出,通过toJsonTree方法将List<Integer>转为jsonarray非常方便。
八、pythonarray排序
对于python,jsonarray对应的是一个列表,列表提供了sort方法可以实现排序。
import json a = json.loads('[4,2,1,3]') a.sort(reverse=True) print(a)执行上述代码,输出为[4, 3, 2, 1]。可以看出,通过sort方法按照降序排序非常方便。
九、jsonArray和jsonObject的使用
JsonArray和JsonObject的使用基本相同,只是操作对象不同。
例如,jsonobject可以通过get和getAsXXX方法获取元素值,jsonobject也可以通过add方法添加新元素。没有遍历方法,但可以通过迭代器实现遍历。
JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("name", "Jhon"); jsonObject.addProperty("age", 20); System.out.println(jsonObject.get("name").getAsString());执行上述代码,输出为Jhon。可以看出,使用jsonobject操作相对简单。
总结
本文对jsonarray的sort方法做了详细讲解,并从多个方面对jsonarray进行了阐述。希望读者通过本文,能够更好地掌握jsonarray的操作方法。