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