Java用Gson按照键值key排序json所有节点
2018-03-17 09:26
519 查看
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.0</version></dependency>
private static Comparator<String> getComparator(){Comparator<String> c = new Comparator<String>(){public int compare(String o1, String o2){return o1.compareTo(o2);}};return c;}public static void sort(JsonElement e){if (e.isJsonNull()){return;}if (e.isJsonPrimitive()){return;}if (e.isJsonArray()){JsonArray a = e.getAsJsonArray();for (Iterator<JsonElement> it = a.iterator(); it.hasNext();){sort(it.next());}return;}if (e.isJsonObject()){Map<String, JsonElement> tm = new TreeMap<String, JsonElement>(getComparator());for (Entry<String, JsonElement> en : e.getAsJsonObject().entrySet()){tm.put(en.getKey(), en.getValue());}for (Entry<String, JsonElement> en : tm.entrySet()){e.getAsJsonObject().remove(en.getKey());e.getAsJsonObject().add(en.getKey(), en.getValue());sort(en.getValue());}return;}}public static void main(String[] args){try{String json = FileUtils.readFileToString(new File("C://test//test.txt"), "UTF-8");Gson g = new GsonBuilder().setPrettyPrinting().create();JsonParser p = new JsonParser();JsonElement e = p.parse(json);sort(e);System.out.println(g.toJson(e));}catch(Exception e){e.printStackTrace();}}代码样例参考了自动化测试REST API工具Wisdom RESTClienthttps://github.com/Wisdom-Projects/rest-client
相关文章推荐
- Java用Gson按照键值key排序json所有节点
- Java用Gson按照键值key排序json所有节点
- Java用Gson遍历json所有节点
- Java用Gson遍历json所有节点
- Java用Gson遍历json所有节点
- Map按照key排序以及JQuery中json对象的排序
- Java用Jackson遍历json所有节点
- java中实现HashMap中的按照key的字典顺序排序输出
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java用Jackson遍历json所有节点
- java中实现HashMap中的按照key的字典顺序排序输出
- java统计List中的元素重复出现的次数和对map按key或键值排序
- JAVA对HashMap按照key排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java中Map根据键值(key)或者值(value)进行排序实现
- Java用Jackson遍历json所有节点
- 实现单层json按照key字母顺序排序
- Java中Map根据键值(key)或者值(value)进行排序实现
- 解决fastjson、Jackson、Gson解析Json数据时,key为Java中关键字无法解析的问题
- java如何对Map结构按照key值排序