利用ObjectMapper readValue()和泛型解决复杂json结构
程序员文章站
2022-10-06 20:21:46
结果: ......
1 import com.dj.fss.vo.MessageListVO; 2 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 3 import com.fasterxml.jackson.core.JsonParseException; 4 import com.fasterxml.jackson.databind.JsonMappingException; 5 import com.fasterxml.jackson.databind.ObjectMapper; 6 7 import java.io.IOException; 8 import java.util.List; 9 10 11 /** 12 * ObjectMapper readValue()方法 13 * 利用泛型解决复杂json结构 14 * @JsonIgnoreProperties(ignoreUnknown = true) 没有实例化的属性不自动赋值 没有这个回报异常 15 * 16 * @param <T> 17 */ 18 @JsonIgnoreProperties(ignoreUnknown = true) 19 public class PageBean<T extends Object> { 20 private List<MessageListVO> messageList; 21 22 private pageinfo pageinfo; 23 24 public PageBean.pageinfo getPageinfo() { 25 return pageinfo; 26 } 27 28 public void setPageinfo(PageBean.pageinfo pageinfo) { 29 this.pageinfo = pageinfo; 30 } 31 32 public List<MessageListVO> getMessageList() { 33 return messageList; 34 } 35 36 public void setMessageList(List<MessageListVO> messageList) { 37 this.messageList = messageList; 38 } 39 40 @JsonIgnoreProperties(ignoreUnknown = true) 41 public class pageinfo{ 42 private int total; 43 44 public int getTotal() { 45 return total; 46 } 47 48 public void setTotal(int total) { 49 this.total = total; 50 } 51 } 52 53 54 55 56 private static String jsonString = "{\n" + 57 " \"messageList\": [\n" + 58 " {\n" + 59 " \"id\": \"7\",\n" + 60 " \"sendCompany\": \"广州机场\",\n" + 61 " \"recvCompany\": \"中国南航航空公司\",\n" + 62 " \"messageType\": \"1001\",\n" + 63 " \"sendTime\": \"2018-07-12 16:43:06\"\n" + 64 " },\n" + 65 " {\n" + 66 " \"id\": \"4\",\n" + 67 " \"sendCompany\": \"广州机场\",\n" + 68 " \"recvCompany\": \"中国南航航空公司\",\n" + 69 " \"messageType\": \"1002\",\n" + 70 " \"sendTime\": \"2018-07-12 15:49:02\"\n" + 71 " }\n" + 72 " ],\n" + 73 " \"pageinfo\": {\n" + 74 " \"pageNum\": 1,\n" + 75 " \"pageSize\": 3,\n" + 76 " \"size\": 2,\n" + 77 " \"startRow\": 1,\n" + 78 " \"endRow\": 2,\n" + 79 " \"total\": 2,\n" + 80 " \"pages\": 1,\n" + 81 " \"list\": null,\n" + 82 " \"prePage\": 0,\n" + 83 " \"nextPage\": 0,\n" + 84 " \"isFirstPage\": true,\n" + 85 " \"isLastPage\": true,\n" + 86 " \"hasPreviousPage\": false,\n" + 87 " \"hasNextPage\": false,\n" + 88 " \"navigatePages\": 8,\n" + 89 " \"navigatepageNums\": [\n" + 90 " 1\n" + 91 " ],\n" + 92 " \"navigateFirstPage\": 1,\n" + 93 " \"navigateLastPage\": 1,\n" + 94 " \"firstPage\": 1,\n" + 95 " \"lastPage\": 1\n" + 96 " }\n" + 97 " }"; 98 99 public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { 100 101 102 103 ObjectMapper mapper = new ObjectMapper(); 104 PageBean<MessageListVO> strPageBean = mapper.readValue(jsonString, PageBean.class); 105 System.out.println(strPageBean.getMessageList().get(0)); 106 System.out.println(strPageBean.getMessageList().get(1)); 107 System.out.println(strPageBean.getPageinfo().getTotal()); 108 } 109 110 }
结果:------------
上一篇: PyQt5 QSerialPort子线程操作的实现
下一篇: 地图瓦片下载