亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用@RequestBody Map<String,Object>接受JSON,數組卻變成了Arraylist,這是為什么?

使用@RequestBody Map<String,Object>接受JSON,數組卻變成了Arraylist,這是為什么?

DIEA 2019-03-01 10:32:06
在Controller 中寫了個方法: @PostMapping("/test1") public String test1(@RequestBody Map<String,Object> map){ //String[] imgs = (String[]) map.get("imgs"); //java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.String; ArrayList<String> imgs = (ArrayList<String>) map.get("imgs"); String name = (String) map.get("name"); String str1 = ""; for (String str: imgs) { System.err.println(str); str1 = str1+"參數:"+str+"\n"; } return "姓名:"+name+"\n"+str1; } 請求內容: { "name": "weiwei", "imgs": [ "abc", "123", "/*-" ] } 如果我使用 String[] imgs = (String[]) map.get("imgs") 去獲取傳過來的數組就會報錯: java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.String; 說ArrayList不能轉換成String[]; 我JSON中的內容傳的是一個數組呀,為什么變成ArrayList了?
查看完整描述

2 回答

?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

@RequsetBody會讀取request的body數據,之后會調用MappingJackson2HttpMessageConverter解析數據,會使用到ObjectMapper,之后this.objectMapper.readValue(inputMessage.getBody(), javaType);javaType是
AbstractJackson2HttpMessageConverter中getJavaType優選出來可以解析context的類型.

查看完整回答
反對 回復 2019-03-01
  • 2 回答
  • 0 關注
  • 930 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號