Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Tạo JSONObject con từ tập hợp key của JSONObject khác (org.json)

Constructor JSONObject(JSONObject, String[])

Lớp JSONObject cung cấp constructor copy một phần: new JSONObject(JSONObject source, String[] names). Chỉ copy các key tồn tại trong mảng names, bỏ qua key không có.

Ví dụ

import java.util.*;
import org.json.*;

public class JsonSubsetExample {
    public static void main(String[] args) throws JSONException {
        Map<String, Object> map = new HashMap<>();
        map.put("Name", "Adithya");
        map.put("Age", 25);
        map.put("DOB", new Date(94, 4, 6)); // deprecated constructor, chỉ demo
        map.put("City", "Hyderabad");

        JSONObject original = new JSONObject(map);
        System.out.println("Gốc (indent 2):");
        System.out.println(original.toString(2));

        // Tạo subset chỉ chứa Name và Age
        JSONObject subset = new JSONObject(original, new String[]{"Name", "Age"});
        System.out.println("\nSubset (indent 2):");
        System.out.println(subset.toString(2));
    }
}

Kết quả

Gốc (indent 2):
{
  "City": "Hyderabad",
  "DOB": "Fri May 06 00:00:00 IST 1994",
  "Age": 25,
  "Name": "Adithya"
}

Subset (indent 2):
{
  "Age": 25,
  "Name": "Adithya"
}

Ứng dụng: Lọc dữ liệu nhạy cảm trước khi gửi qua mạng, hoặc tạo DTO từ entity lớn.