考虑以下是我的数组
[
{"id":10,"name":"name10","valid":true},
{"id":12,"name":"name12","valid":false},
{"id":11,"name":"name11","valid":false},
{"id":9,"name":"name9","valid":true}
]
Run Code Online (Sandbox Code Playgroud)
创建了一个JsonArray,就像下面的代码一样:
//Create a JSON Parser using GSON library
objJsonParser = new JsonParser();
String strArrayText = [{"id":9,"name":"name9","valid":true}, ...]
JsonArray jsonArrayOfJsonObjects = objJsonParser.parse(strArrayText).getAsJsonArray();
Run Code Online (Sandbox Code Playgroud)
现在,我正在尝试jsonArrayOfJsonObjects根据name字段进行排序.
期望的输出:
[
{"id":9,"name":"name9","valid":true},
{"id":10,"name":"name10","valid":false},
{"id":11,"name":"name11","valid":false},
{"id":12,"name":"name12","valid":true}
]
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助解决与Java&Gson相关的最佳应用程序吗?
非常感谢您的投入.
首先,解析JSON的正确方法是创建一个类来封装数据,例如:
public class MyClass {
private Integer id;
private String name;
private Boolean valid;
//getters & setters
}
Run Code Online (Sandbox Code Playgroud)
然后:
Type listType = new TypeToken<List<MyClass>>() {}.getType();
List<MyClass> myList = new Gson().fromJson(strArrayText, listType);
Run Code Online (Sandbox Code Playgroud)
现在你有一个List,你想按属性的值对它进行排序id,所以你可以Collections按照这里的解释使用:
public class MyComparator implements Comparator<MyClass> {
@Override
public int compare(MyClass o1, MyClass o2) {
return o1.getId().compareTo(o2.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
最后:
Collections.sort(myList, new MyComparator());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7881 次 |
| 最近记录: |