Jackson和JSON Lib是兩個非常流行的Java JSON庫,它們提供了輕松處理JSON數據的能力。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonExample {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
// Serialize object to JSON string
Person person = new Person("John", "Doe");
String json = mapper.writeValueAsString(person);
System.out.println(json);
// Deserialize JSON string to object
String json2 = "{\"firstName\":\"Jane\",\"lastName\":\"Smith\"}";
Person person2 = mapper.readValue(json2, Person.class);
System.out.println(person2.getFirstName());
}
}
class Person {
private String firstName;
private String lastName;
// Constructors, getters/setters
}
上述代碼示例演示了如何使用Jackson將Java對象序列化為JSON字符串以及如何從JSON字符串反序列化回Java對象。代碼使用ObjectMapper類,它是Jackson庫的核心類,提供了轉換Java對象和JSON之間的橋梁。
與Jackson不同,JSON Lib是一個舊的Java JSON庫,已經很長一段時間沒有更新。它提供了一個方便的JSON解析器和JSON生成器API,適用于早期版本的Java。
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
public class JsonLibExample {
public static void main(String[] args) {
// Create JSON object
JSONObject person = new JSONObject();
person.put("firstName", "John");
person.put("lastName", "Doe");
// Serialize object to JSON string
String json = person.toString();
System.out.println(json);
// Deserialize JSON string to object
String json2 = "{\"firstName\":\"Jane\",\"lastName\":\"Smith\"}";
JSONObject person2 = JSONObject.fromObject(json2);
System.out.println(person2.getString("firstName"));
}
}
上述代碼示例展示了如何使用JSON Lib創建和操作JSON對象。代碼使用JSONObject類,它是JSON Lib的核心類,提供了方便的JSON解析器和JSON生成器API。
總的來說,Jackson和JSON Lib都是流行且有用的Java JSON庫。Jackson提供更多的功能和支持,同時還可以適應最新的Java版本。如果你的項目已經使用了Jackson,則最好繼續使用它。如果你需要支持更早的Java版本,則可以使用JSON Lib。