微軟商店下載的python不能修改config的解決方法 找到圖中文件的位置 C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.9_3.9.3312.0_x64__qbz5n2kfra8p0\\pip.ini 右鍵屬性 ...
轉自:
http://www.java265.com/JavaJingYan/202205/16514089353226.html
下文筆者講述Java中@JSONField和@JsonProperty的不同之處,如下所示:
今天在springboot的開發中, 可以使用 @JSONField可正常轉換 但@JsonProperty無法進行轉換 那麼是什麼原因呢?下文筆者將一一道來,如下所示
package com.java265; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.math.BigDecimal; /** * java265.com 示常式序 * @description 測試@JSONField和@JsonProperty註解 * @AUTHER: java265.com * @DATE: 2022/5/1 **/ @Data public class JsonTest { //測試@JSONField註解 @JSONField(name ="maomaoName") private String name; //測試@JsonProperty註解 @JsonProperty("orderWorkNo") private String no; public static void main(String[] args) { String str = "{\n" + " \"maomaoName": \"maomao"\,\n" + " \"orderWorkNo\": \"898989\"\n" + " \n" + "}"; JsonTest jsonTest = JSONObject.parseObject(str, JsonTest.class); System.out.println("jsonTest="+jsonTest); } } ------運行以上代碼,將輸出以下信息------ jsonTest=JsonTest(name="maomao",orderWorkNo=null)
以上出現失敗的原因: 響應時是使用FastJson做json序列化(阿裡巴巴的) 如果換成net.sf.json.JSONObject 則jsonProperty可進行相應的轉換
jsonField和jsonProperty的區別
bean轉換成Json字元串 @JsonProperty:ObjectMapper().writeValueAsString(Object value) @JSONField:ObjectMapper().readValue(String content, Class valueType) Json字元串轉化為bean: @JsonProperty:ObjectMapper().readValue(String content, Class valueType) @JSONField:JSONObject.parseObject(String content, Class valueType) @JSONField這個註解可以用於get、set以及屬性上面 @JSONproperty這個註解用於屬性上面 例:在屬性名上面增加@JsonProperty(value="name") jackson的@JsonIgnore使用 在json序列化時將java bean中的一些屬性忽略掉,序列化和反序列化都受影響。 使用方法:當在屬性或方法上標記@JsonIgnore時,則返回json數據中不包含該屬性