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

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

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

      接口間數(shù)據(jù)傳輸

      接口間數(shù)據(jù)傳輸問題

       

      程序的接口之間進行信息通信的過程中,會遇到一些參數(shù)數(shù)據(jù)接收和轉(zhuǎn)換的問題。

      例如:前端傳過來的一個實體數(shù)據(jù),其中包含另一個實體,且實體屬性中包含除string以外的其他類型(例如:date),這樣在接收的時候會出現(xiàn)各種異常情況。

       

       

       java實體示例:

      @Data
      public class Person {
      
          @FieldName("轉(zhuǎn)貨單據(jù)頭")
          private Integer fid;
          @FieldName("發(fā)貨公司系統(tǒng)更新時間")
          @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
          @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
          private Date sendUpdateSysDate;
          @FieldName("是否推送TMS收貨公司  0否1是2預(yù)上線")
          private Integer tmsReceiveSwitch;
          @FieldName("收貨公司系統(tǒng)更新時間")
          @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
          @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
          private Date ReceiveUpdateSysDate;
          @FieldName("轉(zhuǎn)貨單體")
          private List<Personentry> personEntryList;
      }

      前端傳遞數(shù)據(jù):

       1 {
       2   "fid": 0,
       3   "sendUpdateSysDate": "2020-10-11 16:15:15",
       4   "tmsReceiveSwitch": 0,
       5   "ReceiveUpdateSysDate": "2020-10-11 16:15:15",
       6   "personEntryList": [{
       7             "fid": 0,
       8             "fparentid": 0,
       9             "fentryid": 0,
      10             "fitemid": 0},
      11         {
      12             "fid": 0,
      13             "fparentid": 0,
      14             "fentryid": 0,
      15             "fitemid": 0},
      16 ]
      17 }    

      如上面所示,前端傳遞的json數(shù)據(jù),雖然和java實體是屬性一一對應(yīng)但是在Controller中進行接收:

      1 @RequestMapping(value = "/api",method = RequestMethod.POST)
      2     @ResponseBody
      3     public RemoteResult valideTransferTime(@RequestBody Person p){
      4         logger.info(String.format(">>>>>>>>>>>>>>>>>>>>>>>入?yún)ⅲ篭n[%s]",p.toString()));
      5         return transferService.valideTransferTime(p);
      6     }

      報錯如下:

      出現(xiàn)上面的問題是由于json中字段和實體字段不對應(yīng)(包括屬性個數(shù)和類型)導(dǎo)致的。雖然Json中的字段和實體中的是一一對應(yīng)的,但是在前端Json傳遞到后端后通過實體進行接收,實體中的Date類型,前端傳過來的是字符串,導(dǎo)致類型不一致,無法接收。如上面代碼中標紅的代碼。

      解決方案:

      方案一、通過配置解決(本人在使用方案一后仍然未解決問題):

      在實體屬性上使用這個兩個注解中的一個,用java.util.Date;和java.sql.Date都行

      @JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”, timezone=“GMT+8”)
      @DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)

      在spring配置文件中配置

      spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

      方案二、通過JSONObject接收,然后解析成實際使用的實體:

      1     public RemoteResult valideTransferTime(@RequestBody JSONObject jsonObject){
      2         Person p=JSONObject.parseObject(jsonObject.toJSONString(),Person.class);
      3         logger.info(String.format(">>>>>>>>>>>>>>>>>>>>>>>入?yún)ⅲ篭n[%s]",p.toString()));
      4         return personService.valideTransferTime(p);
      5     }

      本人強烈推薦使用第二種方案,第二種方案可控度高并且問題排查比較容易,而且非常靈活。非常不推薦使用直接的實體作為DTO進行數(shù)據(jù)的傳輸和接收。

      posted @ 2020-10-19 10:29  藍迷夢  閱讀(512)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 西西人体大胆444WWW| 亚洲熟女乱一区二区三区| 国产日韩久久免费影院| 亚洲熟女精品一区二区| 蜜桃AV抽搐高潮一区二区| 亚洲乱码日产精品bd在线| 97se亚洲综合自在线| 婷婷久久香蕉五月综合加勒比| 精品国产一区二区三区四区阿崩| 久久人人97超碰人人澡爱香蕉| 久久永久视频| 日韩精品一区二区三区激情 | 亚洲精品一区二区三区婷婷月| 野外做受三级视频| 欧美乱妇高清无乱码免费| 亚洲高清偷拍一区二区三区| 毛片在线看免费| 久久亚洲精品11p| 熟女国产精品一区二区三| 中国亚州女人69内射少妇| 亚洲精品三区四区成人少| 亚洲天堂av日韩精品| 中国女人大白屁股ass| 无码一区中文字幕| 99久久国产综合精品女图图等你| 亚洲国产在一区二区三区| 亚洲av二区三区在线| 亚洲男人AV天堂午夜在| 久久综合亚洲色一区二区三区| 精品一区二区免费不卡| 亚洲av日韩在线资源| 在线综合亚洲欧洲综合网站| 亚洲精品在线少妇内射| 亚洲av色一区二区三区| 国内精品视频区在线2021| 老色99久久九九爱精品| 福利网午夜视频一区二区| 18禁亚洲一区二区三区| 综合久青草视频在线观看| 亚洲日本高清一区二区三区| 色欲久久综合亚洲精品蜜桃|