在開發過程中,我們使用DTO來封裝實體類,方便進行數據傳輸。而在前后端數據交互時,常用的數據格式是JSON。因此,我們需要將DTO轉換為JSON格式。同時,為了滿足后臺數據庫字段命名規范,我們還需要將DTO中的駝峰命名方式轉換為下劃線命名方式。
/** * DTO類 */ public class UserDTO { private Long userId; private String userName; private Integer userAge; // getter和setter方法 } /** * 轉換為JSON格式的工具類 */ public class JsonUtils { /** * 將DTO對象轉換為JSON字符串 * @param obj DTO類對象 * @return JSON字符串 */ public static String toJson(Object obj) { ObjectMapper mapper = new ObjectMapper(); String jsonStr = ""; try { //將駝峰命名方式轉換為下劃線命名方式 mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); jsonStr = mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { e.printStackTrace(); } return jsonStr; } }
在上面的代碼中,我們使用了Jackson庫中的ObjectMapper類來實現DTO轉JSON的功能。為了將DTO中的駝峰命名方式轉換為下劃線命名方式,我們調用了ObjectMapper類中的setPropertyNamingStrategy()方法,并傳入了PropertyNamingStrategy.SNAKE_CASE參數。
因此,當我們將UserDTO對象通過toJson()方法轉換為JSON字符串時,其屬性名將被轉換為下劃線命名方式。
/** * 調用toJson()方法實現DTO轉JSON */ UserDTO userDTO = new UserDTO(); userDTO.setUserId(1L); userDTO.setUserName("Tom"); userDTO.setUserAge(18); String jsonStr = JsonUtils.toJson(userDTO); System.out.println(jsonStr); //輸出:{"user_id":1,"user_name":"Tom","user_age":18}
通過上面的示例,我們可以看到DTO類已成功轉換為下劃線命名方式的JSON字符串。
上一篇python 爬去漢字
下一篇c 怎么加入json.h