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.