Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เราจะเรียงลำดับ JSONObject ใน Java ได้อย่างไร


A JSONObject เป็น ไม่เรียงลำดับ คอลเลกชันของ คีย์ คู่ค่า และค่าอาจเป็นประเภทใดก็ได้ เช่น Boolean, JSONArray, JSONObject, Number และ สตริง . คอนสตรัคเตอร์ของ JSONObject สามารถใช้ในการแปลงข้อความ JSON ของแบบฟอร์มภายนอกให้อยู่ในรูปแบบภายในซึ่งสามารถดึงค่าได้ด้วย get() และ opt() เมธอดหรือการแปลงค่าเป็นข้อความ JSON โดยใช้ put() และ toString() วิธีการ

ในตัวอย่างด้านล่าง เราสามารถจัดเรียงค่าของ JSONObject ตามลำดับจากมากไปน้อย

ตัวอย่าง

import org.json.*;
import java.util.*;
public class JSonObjectSortingTest {
   public static void main(String[] args) {
      List<Student> list = new ArrayList<>();
      try {
         JSONObject jsonObj = new JSONObject();
         jsonObj.put("Raja", 123);
         jsonObj.put("Jai", 789);
         jsonObj.put("Adithya", 456);
         jsonObj.put("Ravi", 111);
         Iterator<?> keys = jsonObj.keys();
         Student student;
         while(keys.hasNext()) {
            String key = (String) keys.next();
            student = new Student(key, jsonObj.optInt(key));
            list.add(student);
         }
         Collections.sort(list, new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
               return Integer.compare(s2.pwd, s1.pwd);
            }
         });
         System.out.println("The values of JSONObject in the descending order:");
         for(Student s : list) {
            System.out.println(s.pwd);
         }
      } catch(JSONException e) {
         e.printStackTrace();
      }
   }
}
// Student class
class Student {
   String username;
   int pwd;
   Student(String username, int pwd) {
      this.username = username;
      this.pwd = pwd;
   }
}

ผลลัพธ์

The values of JSONObject in the descending order:
789
456
123
111