How to sort JSON object in java?

后端 未结 5 873
一个人的身影
一个人的身影 2020-12-06 01:35

I\'ve been looking for a while and want a way to sort a JSON object like this:

{\"results\": [
  {
    \"layerId\": 5,
    \"layerName\": \"Pharmaceutical En         


        
5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-06 02:12

    I used JSON simple API to sort this. Here is my code:

    import java.io.FileReader;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    
    import org.json.simple.JSONArray;
    import org.json.simple.JSONObject;
    import org.json.simple.parser.JSONParser;
    
    public class SortJSON {
    
    public static void main(String[] args) {
        JSONParser parser = new JSONParser();
        try {
            JSONObject o = (JSONObject) parser.parse(new FileReader("test3.json"));
            JSONArray array = (JSONArray) o.get("results");
            ArrayList list = new ArrayList<>();
    
            for (int i = 0; i < array.size(); i++) {
                list.add((JSONObject) array.get(i));
            }
            Collections.sort(list, new MyJSONComparator());
    
            for (JSONObject obj : list) {
                System.out.println(((JSONObject) obj.get("attributes")).get("OBJECTID"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    }
    
    class MyJSONComparator implements Comparator {
    
    @Override
    public int compare(JSONObject o1, JSONObject o2) {
        String v1 = (String) ((JSONObject) o1.get("attributes")).get("COMMERCIALNAME_E");
        String v3 = (String) ((JSONObject) o2.get("attributes")).get("COMMERCIALNAME_E");
        return v1.compareTo(v3);
    }
    
    }
    

提交回复
热议问题