<!-- 10.jackson --> <!--10.1 定義了底層的streaming API和實現了Json特性 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <!-- 10.2 實現了數據綁定和對象序列化,它依賴於streaming和annotations的包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency> <!-- 10.3 包含了標準的Jackson註解。本文暫不介紹 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.7.3</version> </dependency> |
安裝lombok插件html
http://www.javashuo.com/article/p-zggrddme-cd.html前端
需求:json
效果:app
方式1: 缺點:一個類上定義忽略的字段都會被忽略 別人若是須要就沒辦法了編碼
@JsonIgnoreProperties({"descr", "other"})//忽略字段 descr, other other 沒有用到 這裏只是展現忽略多個字段的方式 @JsonInclude(Include.NON_NULL) //忽略 null字段 |
方式2:根據須要本身在代碼中忽略相應的字段 須要引入json-libspa
效果:.net
實現方式:插件
引入:jar3d
<!--json-lib依賴 --> <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency> |
代碼中:xml
@RequestMapping("/objectToJson3") public void objectToJson3(HttpServletResponse response) throws IOException{ //設置響應編碼格式 response.setContentType("text/html; charset=utf-8"); //------------封裝數據------------開始----------------- User2 u = new User2();// //u.setId(2l); u.setName("李四"); u.setDescr("jsonson 配合json-lib 使用 "); u.setOther("json-lib 忽略 不須要的字段"); //------------封裝數據------------結束----------------- //--------------------json-lib處理數據--開始------------------------------------------------ JsonConfig jsonConfig = new JsonConfig();//import net.sf.json.JsonConfig; jsonConfig.setExcludes(new String[] {"name","descr"}); JSONArray jsonArray = JSONArray.fromObject(u, jsonConfig);//import net.sf.json.JSONArray; //--------------------json-lib處理數據--結束------------------------------------------------ ObjectMapper mapper=new ObjectMapper(); String jsonData = mapper.writeValueAsString(jsonArray); PrintWriter out = response.getWriter(); out.write(jsonData); out.flush(); out.close(); } |
效果
方式:
//jackson的核心,經過mapper來進行序列化和反序列化 ObjectMapper mapper=new ObjectMapper(); //序列化,write相關方法!write能夠是序列化輸出多種格式,固然這邊最經常使用就是寫成爲String返回前端 String jsonData = mapper.writeValueAsString(list); |
2.4 map 轉json
List<User3> resultList = mapper.readValue(jsonData, new TypeReference<List<User3>>(){}); |
User4 user4 = mapper.readValue(jsonData, User4.class); // 簡單方式 |