剛入職的小碼農一個,開個部落格記錄一下平時遇到的一些問題解決方法 、小經驗技巧 和 新思路新想法QuQ
今天調試了半天的一個問題關于JSON轉實體
JSON 轉實體類A,A中字段不為String 時,如(Integer,BigDecimal)時,
JSON中的該字段值為“”,或根本沒有PUT進去時,轉換後為null(不是字元串null),再轉為JSON時,此字段就會消失,然後getString時就會報錯,
可在轉換實體類A後加判斷(null == A.getXX()),應有更好的方法歡迎補充
2018年3月6日15:31:03
補充一下:
例如傳過來的封包:{"name":"123","age":null}
轉實體(這個按照業務邏輯會由接收實體轉為發送實體)再用fastjson(将發送實體)轉json
Student stu = JSONObject.parseObject(aa.toJSONString(), Student.class);
(這裡就暫時用接收實體再轉回去,隻是做個例子)
String str= JSONObject.toJSONString(stu);
這時候的str就是:{"name":"123"}
發給其他程式getString的時候就可能報錯,還要判斷contains(key)
這時候可以用jackson将stu轉為json
String newStr= "";
try {
newStr= new ObjectMapper().writeValueAsString(stu);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
這時候newStr就是:{"name":"123","age":null}
就可以解決問題了