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

วิธีจัดเรียง JSONObject ใน Java

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

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

ตัวอย่างโค้ด

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 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