日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java - 使用spring mvc時,RequestBody中json轉換成對象失敗,對象中包含list

瀏覽:201日期:2023-12-22 15:27:52

問題描述

使用spring mvc時,RequestBody中json轉換成對象失敗,因為對象中包含list,如果我去掉list,就能轉換成功。

代碼:java - 使用spring mvc時,RequestBody中json轉換成對象失敗,對象中包含listDTO類代碼:

public class OrderDishes { // 就餐人數 private int peopleNum; // 單個菜品 private List<Dishes> variant; // 套餐 private List<Dishes> product; // 商品總額 private BigDecimal totalAmount; // 折扣金額 private BigDecimal discountAmount; // 備注 private String memo; // 是否推遲下單 private boolean isPostpone; public OrderDishes(int peopleNum, List<Dishes> variant, List<Dishes> product, BigDecimal totalAmount, BigDecimal discountAmount, String memo, boolean isPostpone) {this.peopleNum = peopleNum;this.variant = variant;this.product = product;this.totalAmount = totalAmount;this.discountAmount = discountAmount;this.memo = memo;this.isPostpone = isPostpone; } public OrderDishes() { } public int getPeopleNum() {return peopleNum; } public void setPeopleNum(int peopleNum) {this.peopleNum = peopleNum; } public List<Dishes> getVariant() {return variant; } public void setVariant(List<Dishes> variant) {this.variant = variant; } public List<Dishes> getProduct() {return product; } public void setProduct(List<Dishes> product) {this.product = product; } public BigDecimal getTotalAmount() {return totalAmount; } public void setTotalAmount(BigDecimal totalAmount) {this.totalAmount = totalAmount; } public BigDecimal getDiscountAmount() {return discountAmount; } public void setDiscountAmount(BigDecimal discountAmount) {this.discountAmount = discountAmount; } public String getMemo() {return memo; } public void setMemo(String memo) {this.memo = memo; } public boolean isPostpone() {return isPostpone; } public void setPostpone(boolean postpone) {isPostpone = postpone; } public class Dishes {private Long productID;private int quantity;private String memo;private BigDecimal addedPrice;public BigDecimal getAddedPrice() { return addedPrice;}public void setAddedPrice(BigDecimal addedPrice) { this.addedPrice = addedPrice;}public Long getProductID() { return productID;}public void setProductID(Long productID) { this.productID = productID;}public int getQuantity() { return quantity;}public void setQuantity(int quantity) { this.quantity = quantity;}public String getMemo() { return memo;}public void setMemo(String memo) { this.memo = memo;} }}

傳入json:

{ 'peopleNum': 1, 'variant': [ { 'productID': 269, 'quantity': 1, 'memo': 'string', 'addedPrice': 0 } ], 'product': [ { 'productID':469 , 'quantity': 1, 'memo': 'string', 'addedPrice': 0 } ], 'totalAmount': 1000, 'discountAmount': 0, 'memo': 'string', 'postpone': true}

錯誤信息:

org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: No suitable constructor found for type [simple type, class cc.toprank.byd.pad.dto.OrderDishes$Dishes]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?) at [Source: java.io.PushbackInputStream@5607eee4; line: 5, column: 7] (through reference chain: cc.toprank.byd.pad.dto.OrderDishes['variant']->java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class cc.toprank.byd.pad.dto.OrderDishes$Dishes]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?) at [Source: java.io.PushbackInputStream@5607eee4; line: 5, column: 7] (through reference chain: cc.toprank.byd.pad.dto.OrderDishes['variant']->java.util.ArrayList[0]) at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:229) at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:213) at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:197) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:147) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:125) at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:99) at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)

問題解答

回答1:

將Dishes設置成靜態內部類如這樣

public static class Dishes{}

內部類

// 非靜態內部類實例會默認有一個上一級類的實例的引用// 非靜態內部類的實例化是這樣的OrderDishes orderDishes = new OrderDishes(); // 外部類Dishes dish = orderDishes.new Dishes(); // 非靜態內部類

靜態內部類

// 如果是靜態內部類則內部類和外部類沒有關聯關系// 他們的關系只是在同一個文件中OrderDishes orderDishes = new OrderDishes(); // 外部類Dishes dish = new Dishes(); // 非靜態內部類,正常方式的實例化

JSON反序列化失敗的原因是序列化框架不知道Dishes是內部類,所以創建對象失敗了

求點贊和采納~~

回答2:

字符串轉對象時如果對象帶有有參數構造方法,那么必須要增加一個無參數的構造方法,不然通過反射創建對象時會報錯,因為需要參數

回答3:

內部類沒有不帶參數構造方法,默認生成的構造方法帶參數,參數為外層類對象

標簽: java
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美国产不卡| 亚洲精品极品少妇16p| 日韩在线观看一区二区| 欧美精选一区二区三区| 国内精品福利| 狠狠干成人综合网| 日韩a一区二区| 日韩电影免费网站| 麻豆久久久久久| 久久亚洲精精品中文字幕| 国产欧美亚洲精品a| 久久国产精品色av免费看| 欧美一区精品| 日本午夜免费一区二区| 国产日产高清欧美一区二区三区 | 国产一区二区三区91| 精品淫伦v久久水蜜桃| 久久久天天操| 综合五月婷婷| 欧美一区精品| 亚洲欧洲高清| 久久午夜影视| 麻豆精品视频在线观看| 日韩精品网站| 亚洲欧美在线综合| 日韩精彩视频在线观看| 久久精品一区二区国产| 国产69精品久久| 日韩精品看片| 国产欧美二区| 欧美一区二区性| 狠狠久久伊人中文字幕| 中文日韩在线| 久久久久欧美精品| 国产精品hd| 久久久久黄色| 久久成人一区| 人人草在线视频| 国产精品theporn| 午夜在线视频观看日韩17c| 激情综合婷婷| 一区二区电影在线观看| 久久久久免费| 国产精品nxnn| 日韩三级久久| 免费日韩av| 成人av二区| 99国产精品免费视频观看| 九九久久国产| 国产精品毛片视频| 一本一道久久a久久| 欧美日韩国产欧| 欧美aa在线观看| 国产成人免费| 精品高清久久| 国产精品宾馆| 欧美片网站免费| 亚洲综合婷婷| 亚洲欧美日韩在线观看a三区| 久久一区二区三区电影| 成人精品天堂一区二区三区| 精品国产一区二| yellow在线观看网址| 成人在线免费观看91| 国产一区国产二区国产三区 | 国产精品一级在线观看| 欧美午夜三级| 国产一区调教| 女生影院久久| 激情欧美一区| 亚洲伊人精品酒店| 久久激五月天综合精品| 国产精品一区三区在线观看| 欧美日本久久| 久久精品免费一区二区三区| 在线国产一区二区| 日韩黄色免费网站| 久久精品一本| 精品中文一区| 日本va欧美va精品发布| 精品理论电影在线| 香蕉久久99| 国产欧美日韩在线观看视频| 麻豆国产精品一区二区三区| 丝袜美腿一区| 日韩高清电影免费| 国产高潮在线| 天堂va蜜桃一区二区三区| 国产精品夜夜夜| 99久久亚洲精品蜜臀| 日韩一区免费| 日韩av免费| 国产欧美成人| 蜜桃成人av| 精品国产欧美日韩| 亚洲精品麻豆| 日韩欧美精品一区| 国产日韩视频| 免费国产自久久久久三四区久久| 欧美日韩午夜| 好吊日精品视频| 国精品产品一区| 欧美日本二区| 亚洲aa在线| 在线亚洲一区| 激情欧美一区二区三区| 九九九精品视频| 欧美午夜网站| 亚洲精品视频一二三区| 五月天久久777| 日韩在线视频精品| 久久精品五月| 精品视频一区二区三区在线观看 | 中文字幕在线看片| 国产免费播放一区二区| 综合国产精品| 视频一区国产视频| 亚洲不卡av不卡一区二区| 免费一区二区三区在线视频| 奇米亚洲欧美| 亚洲精品国产日韩| 中文字幕亚洲影视| 亚洲网址在线观看| 亚洲精品在线a| 日韩高清成人在线| 国产精品xxx| 麻豆中文一区二区| 国产精品www.| 韩国久久久久久| 99精品在线观看| 一区在线免费| 在线精品福利| 欧美日本二区| 国产suv精品一区二区四区视频 | 国产日韩一区| 久久精品系列| 亚洲成人va| 另类国产ts人妖高潮视频| 亚洲一区二区三区在线免费| 18国产精品| 国产一区二区三区天码| 91精品一区二区三区综合在线爱| 99久久婷婷| 日韩中文字幕一区二区高清99| 日欧美一区二区| 国产精品久久久久9999高清| 国产精品二区不卡| 午夜精品婷婷| 国产亚洲字幕| 久久中文字幕二区| 日韩一区二区三区精品| 国产精品美女午夜爽爽| 免费欧美一区| 国产精品成人**免费视频| 国产91精品对白在线播放| 欧美日韩a区| 亚洲男女av一区二区| 美女性感视频久久| 国产日韩专区| 久久中文在线| 黄色亚洲在线| 精品中文字幕一区二区三区 | 国产精品美女久久久久久不卡| 欧美亚洲在线日韩| 免费在线日韩av| 蜜桃视频一区二区三区在线观看| 美女免费视频一区| 在线午夜精品| 播放一区二区| 欧美91在线|欧美| 六月婷婷一区| 人人香蕉久久| 亚洲综合电影| 国产91欧美| 国产福利资源一区| 日韩黄色在线观看| 中文字幕一区二区三区日韩精品 | 亚洲女同中文字幕| 久久精品国产在热久久| 日韩高清欧美激情| 日本中文字幕视频一区| 美女黄网久久| 久久aⅴ国产紧身牛仔裤| 成人日韩在线观看| 亚洲精品福利电影| 午夜精品久久久久久久久久蜜桃| 麻豆精品视频在线观看视频| 日本欧美一区| 日韩精品一区二区三区中文在线| 亚洲少妇诱惑| 老鸭窝亚洲一区二区三区| 午夜久久一区| 久久精品亚洲欧美日韩精品中文字幕| 国产麻豆一区二区三区| 日本国产亚洲| 老司机精品视频网| 三上亚洲一区二区| 中文字幕在线官网| 国内精品福利| 日韩精品国产精品|