使用GSON和Jackson将Java对象转换为JSON

x33g5p2x  于2022-10-25 转载在 Java  
字(2.4k)|赞(0)|评价(0)|浏览(1078)

这个示例将展示如何使用GSONjackson将java对象转换为json。JSON是一种开放标准格式,它使用人类可读的文本来传输由属性-值对组成的数据对象。在设置中,我们将初始化一个平面列表,每个代码片段将使用该列表序列化为json。

设置

  1. class Plane {
  2. private String planeType;
  3. public Plane(String planeType) {
  4. super();
  5. this.planeType = planeType;
  6. }
  7. public String getPlaneType() {
  8. return planeType;
  9. }
  10. @Override
  11. public String toString() {
  12. return Objects.toStringHelper(this).add("plane type: ", planeType).toString();
  13. }
  14. }
  15. private List<Plane> planes = Lists.newArrayList();
  16. private Plane seaPlane;
  17. @Before
  18. public void seedData () {
  19. planes.add(new Plane("Commercial Transport Planes"));
  20. planes.add(new Plane("General Aviation Planes"));
  21. planes.add(new Plane("Military Planes"));
  22. planes.add(new Plane("Sea Planes"));
  23. planes.add(new Plane("Special Purpose Planes"));
  24. seaPlane = new Plane("Sea Planes");
  25. }

GSON

使用gson,这个代码段将把java对象转换为json。

对象

  1. @Test
  2. public void marshall_java_object_to_json_with_gson () {
  3. Gson gson = new Gson();
  4. String json = gson.toJson(seaPlane);
  5. logger.info(json);
  6. assertEquals(JSON_OBJECT, json);
  7. }

输出

  1. {
  2. "planeType":"Sea Planes"
  3. }

列表

这个代码片段将使用GSON将java列表转换为json数组。

  1. @Test
  2. public void marshall_java_list_to_json_with_gson () {
  3. Gson gson = new Gson();
  4. String json = gson.toJson(planes);
  5. logger.info(json);
  6. assertEquals(JSON_ARRAY, json);
  7. }

输出

  1. [
  2. {
  3. "planeType":"Commercial Transport Planes"
  4. },
  5. {
  6. "planeType":"General Aviation Planes"
  7. },
  8. {
  9. "planeType":"Military Planes"
  10. },
  11. {
  12. "planeType":"Sea Planes"
  13. },
  14. {
  15. "planeType":"Special Purpose Planes"
  16. }
  17. ]

Jackson

这个代码段将通过调用ObjectMapper使用jackson将对象转换为json。writeValueAsString,它将java对象序列化为JSON字符串。

对象

  1. @Test
  2. public void marshall_java_object_to_json_with_jackson () throws JsonProcessingException {
  3. ObjectMapper objectMapper = new ObjectMapper();
  4. String json = objectMapper.writeValueAsString(seaPlane);
  5. logger.info(json);
  6. assertEquals(JSON_OBJECT, json);
  7. }

输出

  1. {
  2. "planeType":"Sea Planes"
  3. }

列表

此代码段将使用Jackson将ArrayList转换为JSON。

  1. @Test
  2. public void marshall_java_list_to_json_with_jackson () throws JsonProcessingException {
  3. ObjectMapper objectMapper = new ObjectMapper();
  4. String json = objectMapper.writeValueAsString(planes);
  5. logger.info(json);
  6. assertEquals(JSON_ARRAY, json);
  7. }

输出

  1. [
  2. {
  3. "planeType":"Commercial Transport Planes"
  4. },
  5. {
  6. "planeType":"General Aviation Planes"
  7. },
  8. {
  9. "planeType":"Military Planes"
  10. },
  11. {
  12. "planeType":"Sea Planes"
  13. },
  14. {
  15. "planeType":"Special Purpose Planes"
  16. }
  17. ]

相关文章

最新文章

更多