<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      FastJson轉Java對像字段不區分大小寫

      昨天遇到參數key大小寫不一致導致校驗簽名失敗的問題,查了很長時間才找到原因。看了一下FastJson源碼,發現JSON.toObject中轉換成對象的時候會忽略大小寫。

      所以,當使用了JSON.toObject將json轉成Java對象后,再用JSON.toObject轉成json,key值就變了。

      寫個方法驗證一下:

      public class Person {
      	private String nickName;
      
      	public String getNickName() {
      		return nickName;
      	}
      
      	public void setNickName(String nickName) {
      		this.nickName = nickName;
      	}
      	
      }
      
      
      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONObject;
      
      public class JsonToObject {
      
      	public static void main(String[] args) {
      		JSONObject json1 = new JSONObject();
      		json1.put("nickName", "shawn1");
      		System.out.println(json1);
      		Person p1 = json1.toJavaObject(Person.class);
      		System.out.println(p1.getNickName());
      		JSONObject json11 = (JSONObject)JSON.toJSON(p1);
      		System.out.println(json11);
      		System.out.println("--------------------");
      		
      		JSONObject json2 = new JSONObject();
      		json2.put("nickname", "shawn2");
      		System.out.println(json2);
      		json2.toJavaObject(Person.class);
      		Person p2 = json2.toJavaObject(Person.class);
      		System.out.println(p2.getNickName());
      		JSONObject json22 = (JSONObject)JSON.toJSON(p2);
      		System.out.println(json22);
      		System.out.println("--------------------");
      		
      		JSONObject json3 = new JSONObject();
      		json3.put("nIcknAme", "shawn3");
      		System.out.println(json3);
      		json3.toJavaObject(Person.class);
      		Person p3 = json3.toJavaObject(Person.class);
      		System.out.println(p3.getNickName());
      		JSONObject json33 = (JSONObject)JSON.toJSON(p3);
      		System.out.println(json33);
      		System.out.println("--------------------");
      	}	
      
      }
      
      

      輸出:

      {"nickName":"shawn1"}
      shawn1
      {"nickName":"shawn1"}
      --------------------
      {"nickname":"shawn2"}
      shawn2
      {"nickName":"shawn2"}
      --------------------
      {"nIcknAme":"shawn3"}
      shawn3
      {"nickName":"shawn3"}
      --------------------
      
      

      JSON.toObject中轉換成對象的時候忽略了大小寫,可以增強健壯性,但Java類是區分大小寫的,如果有兩個僅僅帶小寫不同的屬性,可能就出問題了。

      給Person增加一個屬性再試一下:

      public class Person {
      	private String nickName;
      
      	public String getNickName() {
      		return nickName;
      	}
      
      	public void setNickName(String nickName) {
      		this.nickName = nickName;
      	}
      	
      	private String nickname;
      
      	public String getNickname() {
      		return nickname;
      	}
      
      	public void setNickname(String nickname) {
      		this.nickname = nickname;
      	}
      	
      }
      
      
      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONObject;
      
      public class JsonToObject {
      
      	public static void main(String[] args) {
      		JSONObject json1 = new JSONObject();
      		json1.put("nickName", "shawn1");
      		System.out.println(json1);
      		Person p1 = json1.toJavaObject(Person.class);
      		System.out.println("nickName:"+p1.getNickName()+"\t nickname:"+p1.getNickname());
      		JSONObject json11 = (JSONObject)JSON.toJSON(p1);
      		System.out.println(json11);
      		System.out.println("--------------------");
      		
      		JSONObject json2 = new JSONObject();
      		json2.put("nickname", "shawn2");
      		System.out.println(json2);
      		json2.toJavaObject(Person.class);
      		Person p2 = json2.toJavaObject(Person.class);
      		System.out.println("nickName:"+p2.getNickName()+"\t nickname:"+p2.getNickname());
      		JSONObject json22 = (JSONObject)JSON.toJSON(p2);
      		System.out.println(json22);
      		System.out.println("--------------------");
      		
      		JSONObject json3 = new JSONObject();
      		json3.put("nIcknAme", "shawn3");
      		System.out.println(json3);
      		json3.toJavaObject(Person.class);
      		Person p3 = json3.toJavaObject(Person.class);
      		System.out.println("nickName:"+p3.getNickName()+"\t nickname:"+p3.getNickname());
      		JSONObject json33 = (JSONObject)JSON.toJSON(p3);
      		System.out.println(json33);
      		System.out.println("--------------------");
      	}	
      
      }
      

      輸出:

      {"nickName":"shawn1"}
      nickName:shawn1	 nickname:null
      {"nickName":"shawn1"}
      --------------------
      {"nickname":"shawn2"}
      nickName:null	 nickname:shawn2
      {"nickname":"shawn2"}
      --------------------
      {"nIcknAme":"shawn3"}
      nickName:null	 nickname:shawn3
      {"nickname":"shawn3"}
      --------------------
      
      

      這個結果符合你的預期嗎?

      所以,用JSON.toObject的時候還是得慎重。

      以上。

      https://wangxuan.me/tech/2023/06/02/FastJson-convert-json-to-Java-Object-field-ignore-case.html

      posted on 2023-06-02 12:03  王君敕  閱讀(2320)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 久久亚洲精品中文字幕馆| 国产专区一va亚洲v天堂| 永顺县| av午夜福利一片免费看久久| 久久久久香蕉国产线看观看伊 | 南京市| 国产AV影片麻豆精品传媒| 国产一区二区日韩在线| 日韩激情无码免费毛片| 国产精品一二三区蜜臀av| 欧美黑人XXXX性高清版| 国产精品无码a∨麻豆| 亚洲精品一区二区三区小| 日夜啪啪一区二区三区| 日本中文字幕有码在线视频| 国产极品精品自在线不卡| 亚洲AV无码国产成人久久强迫| 永济市| 久久人体视频| 啊┅┅快┅┅用力啊岳网站| 中文字幕精品亚洲二区| 中文字幕一区有码视三区| 成人av一区二区三区| 制服 丝袜 亚洲 中文 综合| 亚洲精品乱码久久观看网| 国产欧美在线观看一区| 精品无码人妻| 九九热精品在线视频观看| 成人亚洲性情网站www在线观看| 国产亚洲另类无码专区| 亚洲熟妇av综合一区二区| 国产suv精品一区二区| 国产精品午夜福利在线观看| 久久天堂综合亚洲伊人HD妓女| 四虎国产精品永久在线| 一区二区在线观看 激情| 免费无码av片在线观看播放| 亚洲精品国产av成拍色拍个| 可以在线观看的亚洲视频| 亚洲色成人网站www永久| 亚洲国产精品成人综合色在|