Tôi muốn biết liệu có bất kỳ API Java nào có sẵn để chuyển đổi đối tượng POJO thành đối tượng JSON và ngược lại hay không.Làm thế nào để chuyển đổi POJO sang JSON và ngược lại?
Trả lời
Có, có json.org. Hãy nhìn vào http://www.json.org/java/index.html
[sửa] Hãy tưởng tượng rằng bạn có một lớp Java đơn giản như thế này:
public class Person {
private String name;
private Integer age;
public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return this.age; }
public void setAge(Integer age) { this.age = age; }
}
Vì vậy, để chuyển đổi nó vào một đối tượng JSON, nó rất đơn giản. Như thế này:
import org.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
Person person = new Person();
person.setName("Person Name");
person.setAge(666);
JSONObject jsonObj = new JSONObject(person);
System.out.println(jsonObj);
}
}
Hy vọng điều đó sẽ hữu ích.
[sửa] Ở đây có là một ví dụ khác, trong trường hợp này sử dụng Jackson: https://brunozambiazi.wordpress.com/2015/08/15/working-with-json-in-java/
Chúng tôi cũng có thể tận dụng sự phụ thuộc dưới đây đưa ra và plugin trong tập tin pom của bạn - Tôi tận dụng maven. Với việc sử dụng chúng, bạn có thể tạo POJO theo Lược đồ JSON của bạn và sau đó sử dụng mã được đưa ra dưới đây để điền đối tượng JSON yêu cầu qua đối tượng src được chỉ định làm tham số cho gson.toJson (Object src) hoặc ngược lại. Nhìn vào mã bên dưới:
Gson gson = new GsonBuilder().create();
String payloadStr = gson.toJson(data.getMerchant().getStakeholder_list());
Gson gson2 = new Gson();
Error expectederr = gson2.fromJson(payloadStr, Error.class);
Và các thiết lập Maven:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>1.7.1</version>
</dependency>
<plugin>
<groupId>com.googlecode.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.3.7</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>com.example.types</targetPackage>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Nếu bạn nhận thức được Jackson 2, có một hướng dẫn tuyệt vời tại về cách chuyển đổi Java Objects để JSON và ngược lại. Các đoạn mã sau đã được lấy từ hướng dẫn đó.
Chuyển đổi đối tượng Java để JSON, writeValue(...)
:
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();
//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
Chuyển đổi JSON để đối tượng Java, readValue(...)
:
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'mkyong'}";
//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);
//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://mkyong.com/api/staff.json"), Staff.class);
//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
Jackson 2 phụ thuộc:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
Để biết hướng dẫn đầy đủ, vui lòng truy cập liên kết được nêu ở trên.
Sử dụng GSON để chuyển POJO thành JSONObject. Refer here.
Để chuyển đổi JSONObject thành POJO, chỉ cần gọi phương thức setter trong POJO và gán giá trị trực tiếp từ JSONObject.
- 1. Làm cách nào để chuyển đổi Xml sang Json và ngược lại trong C#
- 2. Có quy tắc nghiêm ngặt nào để chuyển đổi JSON sang XML và ngược lại không?
- 3. làm thế nào để chuyển đổi định dạng ngày php sang GMT và ngược lại?
- 4. Chuyển đổi XML sang JSON (và ngược lại) bằng cách sử dụng Javascript
- 5. Chuyển đổi nhiều PDF sang PNG và ngược lại (Linux)
- 6. Chuyển đổi màu hex sang RGB và ngược lại
- 7. Làm thế nào để chuyển đổi một mảng float thành một byte [] và ngược lại?
- 8. Làm thế nào để chuyển đổi byte [] thành base64 (và ngược lại) trong J2ME?
- 9. Làm cách nào để chuyển dữ liệu từ Javascript sang PHP và ngược lại?
- 10. Thư viện để chuyển đổi native2ascii và ngược lại
- 11. làm thế nào tôi có thể chuyển đổi một hình ảnh RGB sang CMYK và ngược lại trong Java?
- 12. Chuyển đổi JSON sang XML
- 13. Mảng PDF sang byte và ngược lại
- 14. Làm thế nào để chuyển đổi JSON thành chuỗi?
- 15. chuyển con trỏ từ C sang C++ và ngược lại
- 16. cách thay đổi số dương sang âm và ngược lại?
- 17. "Chuyển đổi" NumPy mảng để Matlab và ngược lại
- 18. Chuyển đổi JSON sang CSV
- 19. PHP-MYSQL: Chuyển đổi dấu thời gian Unix sang DateTime và ngược lại
- 20. Làm thế nào để chuyển đổi một đối tượng băm ruby sang JSON?
- 21. Làm thế nào để chuyển đổi chuỗi Json với các trường động sang đối tượng?
- 22. C# chuyển đổi số nguyên thành hex và ngược lại
- 23. Chuyển đổi bitmap của Android sang OpenCV Mat và ngược lại
- 24. làm thế nào để chuyển đổi json để chuỗi
- 25. Làm thế nào để chuyển đổi bảng sau sang JSON bằng javascript?
- 26. Làm thế nào để chuyển đổi sang định dạng JSON của D3?
- 27. Làm cách nào để chuyển đổi hoạt động từ trên xuống dưới và ngược lại?
- 28. Python chuyển đổi thành chuỗi và ngược lại
- 29. Chuyển đổi URL sang phiên bản JSON?
- 30. làm thế nào để chuyển đổi IEnumerable sang IObservable?
Thnx nhưng ... tôi muốn rằng nếu tôi có một Pojo, tôi có thể vượt qua đối tượng pojo và cách này thư viện xây dựng đối tượng JSON ... có thể gson làm điều đó không? bạn có thể cho tôi một ví dụ không? thnx a lot – Mariah
@Bruno Làm thế nào chúng ta có thể nhận được các giá trị của List hoặc Set bằng cách sử dụng JSONObject này. –
Tôi thích phương pháp này - tiếc là nó không hoạt động cho tôi. Tôi nhận được thông báo lỗi: "Các constructor JSONObject (Person) là không xác định" .. bất kỳ ý tưởng tại sao? Tôi đang gọi nó trong một số mã Android .. nó là đồng bằng Java. Cảm ơn – gnB