Parse json object với Jackson 2 trong Java

parse java object voi jackson 2

Chào mừng các bạn đã quay trở lại với thachleblog, bài viết hôm nay mình sẽ giới thiệu về cách parse java object thành chuỗi jason dùng Jackson, very easy.
Giả sử ta cần data trả về với pattern với object bên trong:

  1. {
  2. "code":"ma_code",
  3. "msg":"message",
  4. "data": //student object
  5. {
  6. "Id":"id",
  7. "name":"name",
  8. "className":"class_name"
  9. }
  10. }

Trong ví dụ này, mình sẽ dùng ObjectMapper của Jackson để parse java object. ObjectMapper nằm trong gói com.fasterxml.jackson.databind.ObjectMapper. Chúng ta sẽ cần tải cả dependency của DatabindJackson CoreJackson Annotations (các bạn có thể tải tại đây).

Code minh họa

Class Student

  1. package thach.le.jackson;
  2. /**
  3.  *
  4.  * @author thachlp
  5.  */
  6. public class Student {
  7. private String id;
  8. private String name;
  9. private String className;
  10. public String getId() {
  11. return id;
  12. }
  13. public void setId(String id) {
  14. this.id = id;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. public String getClassName() {
  23. return className;
  24. }
  25. public void setClassName(String className) {
  26. this.className = className;
  27. }
  28. }

Class ResponseObject

  1. package thach.le.jackson;
  2. /**
  3.  *
  4.  * @author thachlp
  5.  */
  6. public class ResponseObject {
  7. private String code;
  8. private String msg;
  9. private Student data;
  10. public String getCode() {
  11. return code;
  12. }
  13. public void setCode(String code) {
  14. this.code = code;
  15. }
  16. public String getMsg() {
  17. return msg;
  18. }
  19. public void setMsg(String msg) {
  20. this.msg = msg;
  21. }
  22. public Student getData() {
  23. return data;
  24. }
  25. public void setData(Student data) {
  26. this.data = data;
  27. }
  28. }

Class Test

  1. package thach.le.jackson;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. /**
  5.  *
  6.  * @author thachlp
  7.  */
  8. public class Test {
  9. public static void main(String[] args) throws JsonProcessingException {
  10. ResponseObject resObject = getResponse();
  11.  
  12. // object mapper
  13. ObjectMapper mapper = new ObjectMapper();
  14. //convert object to json string
  15. String jsonInString = mapper.writeValueAsString(resObject);
  16.  
  17. System.out.println(jsonInString);
  18.  
  19.  
  20. }
  21. private static ResponseObject getResponse() {
  22.  
  23. Student student = new Student();
  24. // set data
  25. student.setId("10520205");
  26. student.setName("Huynh Van Than");
  27. student.setClassName("SE05");
  28.  
  29. ResponseObject resObject = new ResponseObject();
  30.  
  31. String code = "0";
  32. String msg = "Success";
  33. resObject.setCode(code);
  34. resObject.setMsg(msg);
  35. resObject.setData(student);
  36.  
  37. return resObject;
  38. }
  39. }

Kết quả

  1. {"code":"0","msg":"Success","data":{"id":"10520205","name":"Huynh Van Than","className":"SE05"}}

Vừa rồi là phần code minh họa cách sử dụng ObjectMapper để parse java object thành json, thật dễ dàng phải không?
Hẹn gặp lại các bạn ở các bài viết sau nhé. Rất mong nhận được ý kiến đóng góp của tất cả các bạn.
Xin cảm ơn.

Tham khảo thêm:
http://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/

One thought on “Parse json object với Jackson 2 trong Java

  1. Pingback: Load dữ liệu không đồng bộ với JQuery Ajax » Thach Le

Tham gia bình luận