JSON 對象封裝方法
在 Java 中封裝 JSON 對象通常使用第三方庫,如 org.json
、Gson
或 Jackson
。以下是幾種常見的方法:
使用 org.json 庫
添加 Maven 依賴:
<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20231013</version>
</dependency>
創建和封裝 JSON 對象:
import org.json.JSONObject;JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John");
jsonObject.put("age", 30);
jsonObject.put("isStudent", false);String jsonString = jsonObject.toString();
使用 Gson 庫
添加 Maven 依賴:
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.10.1</version>
</dependency>
通過對象轉換:
import com.google.gson.Gson;class Person {String name = "John";int age = 30;boolean isStudent = false;
}Gson gson = new Gson();
String json = gson.toJson(new Person());
手動構建:
import com.google.gson.JsonObject;JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "John");
jsonObject.addProperty("age", 30);
jsonObject.addProperty("isStudent", false);String jsonString = jsonObject.toString();
使用 Jackson 庫
添加 Maven 依賴:
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version>
</dependency>
通過對象轉換:
import com.fasterxml.jackson.databind.ObjectMapper;ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(new Person());
手動構建:
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.JsonNodeFactory;ObjectNode node = JsonNodeFactory.instance.objectNode();
node.put("name", "John");
node.put("age", 30);
node.put("isStudent", false);String jsonString = node.toString();
性能比較
org.json
:輕量級,適合簡單場景Gson
:Google 出品,易用性高Jackson
:性能最優,功能最強大
復雜對象封裝
對于嵌套對象或列表:
// Gson 示例
class Address {String city;String street;
}class User {String name;List<Address> addresses;
}User user = new User();
// 設置屬性...Gson gson = new Gson();
String json = gson.toJson(user);
注意事項
- 處理日期時需要自定義序列化/反序列化
- 循環引用會導致棧溢出,需特別處理
- 大量數據時考慮流式 API(如 Jackson 的 JsonGenerator)