簡體   English   中英

通過Chrome中的POSTMAN Rest Client的Json數據

[英]Json data through POSTMAN rest client in chrome

我正在嘗試通過郵遞員rest客戶端使用json數據和POST方法測試后端服務。

前兩個參數是arraylist,其余所有參數都是String或Integer我傳遞的數據如下:

{
 "watchUsers":["user1"],
 "msgUsers":["user2"],
 "status":1,
 "sendTime":319876,
 "compId":"turbo",
 "workId":"ts",
 "startId":"engine",
 "endId":"restore",
 "msg":"Completed Successfully"
}

我的控制器接受以下內容:

public WatchDTO add(@RequestBody ArrayList<String> watchUsers,@RequestBody ArrayList<String> msgUsers, Integer status, Integer sendTime, String compId, String workId, String startId, String endId, String msg){
.....
}

提交后,出現以下錯誤:org.springframework.http.converter.HttpMessageNotReadableException:無法讀取JSON:無法從[來源:org.apache.catalina.connector中的START_OBJECT令牌中反序列化java.util.ArrayList實例。 CoyoteInputStream @ 4c352e08; 行:1,列:1]; 嵌套的異常是org.codehaus.jackson.map.JsonMappingException:無法從START_OBJECT令牌中反序列化java.util.ArrayList的實例,位於[Source:org.apache.catalina.connector.CoyoteInputStream@4c352e08; 行:1,列:1]

任何想法如何傳遞數組和其他參數。

如下定義一個Java bean-

 import java.util.ArrayList; public class UserStat { ArrayList<String> watchUsers; ArrayList<String> msgUsers; int status; int sendTime; String compId; String workId; String startId; String endId; String msg; public ArrayList<String> getWatchUsers() { return watchUsers; } public void setWatchUsers(ArrayList<String> watchUsers) { this.watchUsers = watchUsers; } public ArrayList<String> getMsgUsers() { return msgUsers; } public void setMsgUsers(ArrayList<String> msgUsers) { this.msgUsers = msgUsers; } public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } public int getSendTime() { return sendTime; } public void setSendTime(int sendTime) { this.sendTime = sendTime; } public String getCompId() { return compId; } public void setCompId(String compId) { this.compId = compId; } public String getWorkId() { return workId; } public void setWorkId(String workId) { this.workId = workId; } public String getStartId() { return startId; } public void setStartId(String startId) { this.startId = startId; } public String getEndId() { return endId; } public void setEndId(String endId) { this.endId = endId; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } 

修改控制器內部的方法,如下所示-

public WatchDTO add(@RequestBody UserStat userStat){ }

public WatchDTO add(@RequestBody UserStat userStat){ }

這應該工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM