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

Thêm element vào JSONObject dùng JSON-lib API (Java)

JSONObject.element(key, value) thêm cặp key/value vào JSONObject (fluent API - trả về this để chain). JSON-lib deprecated, dùng Jackson/Gson.

Cú pháp

public JSONObject element(String key, Object value)

Ví dụ minh họa

import net.sf.json.JSONObject;
import java.util.Arrays;

public class JsonAddElementTest {
    public static void main(String[] args) {
        JSONObject jsonObj = new JSONObject()
            .element("name", "Raja Ramesh")
            .element("age", 30)
            .element("address", "Hyderabad")
            .element("contact numbers", Arrays.asList("9959984000", "7702144400", "7013536200"));
        
        System.out.println(jsonObj.toString(3));
    }
}

Output

{
  "name": "Raja Ramesh",
  "age": 30,
  "address": "Hyderabad",
  "contact numbers": [ "9959984000", "7702144400", "7013536200" ]
}

Alternative: Jackson (Khuyến nghị)

ObjectMapper mapper = new ObjectMapper();
ObjectNode root = mapper.createObjectNode();
root.put("name", "Raja Ramesh");
root.put("age", 30);
root.put("address", "Hyderabad");

ArrayNode contacts = root.putArray("contact numbers");
contacts.add("9959984000").add("7702144400").add("7013536200");

String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root);

Alternative: Gson

JsonObject obj = new JsonObject();
obj.addProperty("name", "Raja Ramesh");
obj.addProperty("age", 30);
obj.addProperty("address", "Hyderabad");

JsonArray contacts = new JsonArray();
contacts.add("9959984000").add("7702144400").add("7013536200");
obj.add("contact numbers", contacts);

String json = new GsonBuilder().setPrettyPrinting().create().toJson(obj);

So sánh

Thư viện API Style Đặc điểm
JSON-lib Fluent .element(k,v) Cũ, đơn giản nhưng deprecated
Jackson Tree model: ObjectNode, ArrayNode Mạnh, type-safe, streaming, annotation-driven
Gson Tree model: JsonObject, JsonArray Đơn giản, nhẹ, API trực quan

Lưu ý

  • JSON-lib yêu cầu 6+ dependency jars.
  • Jackson/Gson: zero/ít dependency, standard de facto.
  • Dự án mới: **Jackson** (enterprise, performance) hoặc **Gson** (simple, Android-friendly).