[英]Json data through POSTMAN rest client in chrome
I am trying to test the backend service through postman rest client with json data and POST method. 我正在尝试通过邮递员rest客户端使用json数据和POST方法测试后端服务。
First 2 parameters are arraylist and rest all are either String or Integer The data i am passing is below: 前两个参数是arraylist,其余所有参数都是String或Integer我传递的数据如下:
{
"watchUsers":["user1"],
"msgUsers":["user2"],
"status":1,
"sendTime":319876,
"compId":"turbo",
"workId":"ts",
"startId":"engine",
"endId":"restore",
"msg":"Completed Successfully"
}
my controller to accept this as below: 我的控制器接受以下内容:
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){
.....
}
After submitting i am getting the below error: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: org.apache.catalina.connector.CoyoteInputStream@4c352e08; 提交后,出现以下错误:org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法从[来源:org.apache.catalina.connector中的START_OBJECT令牌中反序列化java.util.ArrayList实例。 CoyoteInputStream @ 4c352e08; line: 1, column: 1];
行:1,列:1]; nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: org.apache.catalina.connector.CoyoteInputStream@4c352e08;
嵌套的异常是org.codehaus.jackson.map.JsonMappingException:无法从START_OBJECT令牌中反序列化java.util.ArrayList的实例,位于[Source:org.apache.catalina.connector.CoyoteInputStream@4c352e08; line: 1, column: 1]
行:1,列:1]
Any idea how to pass the array & other params. 任何想法如何传递数组和其他参数。
Define a java bean as follows - 如下定义一个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; } }
modify the method inside controller as follows -
修改控制器内部的方法,如下所示-
public WatchDTO add(@RequestBody UserStat userStat){ }
public WatchDTO add(@RequestBody UserStat userStat){ }
This should work
这应该工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.