How to remove duplicate and sort objects from JSONArray using Java

后端 未结 3 1151
生来不讨喜
生来不讨喜 2021-01-02 16:38

My JSON is:

[
   {
      \"distance\":32,
      \"stationCode\":\"MIG\",
      \"name\":\"Midghat\",
      \"platforms\":\"2\"
   },
   {
      \"distance\":         


        
3条回答
  •  北荒
    北荒 (楼主)
    2021-01-02 17:37

    Here is the code for joining '2' JSONArrays and removing duplicates from the joined JSONArray, using ArrayList..contains() method:
    
        import java.util.ArrayList;
        import java.util.List;
    
        import org.json.JSONArray;
        import org.json.JSONException;
        import org.json.JSONObject;
    
        /**
         * @author RAM K K
         * @gmail kkram523@gmail.com
         * 
         */
    
    public class JSONOperations {
    
        public static void main(String[] args) {
    
            String s3;
    
            String s1 = "[{\"name\": \"Bob\", \"car\": \"Ford\"},{\"name\": \"Steve\", \"car\": \"Mercedes Benz\"},{\"name\": \"Bob\", \"car\": \"Ford\"},{\"name\": \"Bob\", \"car\": \"Ford\"},{\"name\": \"Bob\", \"car\": \"Ford\"},{\"name\": \"Bob\", \"car\": \"Ford\"},{\"name\": \"Mary\", \"car\": \"Fiat\"}]";
            String s2 = "[{\"name\": \"Mack\", \"car\": \"VW\"},{\"name\": \"Steve\", \"car\": \"Mercedes Benz\"},{\"name\": \"Bob\", \"car\": \"Ford\"}]";
            try {
                JSONArray sourceArray = new JSONArray(s2);
                JSONArray destinationArray = new JSONArray(s1);
    
                System.out.println(sourceArray);
                System.out.println(destinationArray);
    
                for (int i = 0; i < sourceArray.length(); i++) {
                    destinationArray.put(sourceArray.getJSONObject(i));
                }
    
                System.out.println(destinationArray);
                System.out.println("JSONArray Size is: " + destinationArray.length());
                List list = new ArrayList();
                for (int i = 0; i < destinationArray.length(); i++) {
                    if (!list.contains(destinationArray.get(i).toString())) {
                        list.add(destinationArray.get(i).toString());
                    }
                }
    
                System.out.println("LIST: " + list);
                System.out.println("LIST Size: " + list.size());
    
                JSONArray distinctJSONArray = new JSONArray(list.toString());
                System.out.println(distinctJSONArray.length());
                for (int i = 0; i < distinctJSONArray.length(); i++) {
                    JSONObject JSON = (JSONObject) distinctJSONArray.getJSONObject(i);
                    System.out.println(JSON);
                }
    
                s1 = s1.substring(s1.indexOf("[") + 1, s1.lastIndexOf("]"));
                s2 = s2.substring(s2.indexOf("[") + 1, s2.lastIndexOf("]"));
    
                s3 = "[" + s1 + "," + s2 + "]";
                System.out.println(new JSONArray(s3));
    
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }
    

提交回复
热议问题