当前位置: 首页 > 知识库问答 >
问题:

通过chrome中的POSTMAN rest客户端获取Json数据

尹正奇
2023-03-14

我试图通过postman rest客户端,使用json数据和POST方法测试后端服务。

前2个参数是数组列表,其余都是字符串或整数我传递的数据如下:

{
 "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){
.....
}

提交后,我得到以下错误:组织。springframework。http。转换器。HttpMessageNoteableException:无法读取JSON:无法反序列化java实例。util。ArrayList out of START_OBJECT token位于[源:org.apache.catalina.connector]。CoyoteInputStream@4c352e08; 行:1,列:1];嵌套异常为org。科德豪斯。杰克逊。地图JsonMappingException:无法反序列化java实例。util。ArrayList out of START_OBJECT token位于[源:org.apache.catalina.connector]。CoyoteInputStream@4c352e08; 行:1,列:1]

知道如何传递数组吗

共有1个答案

钦良弼
2023-03-14

定义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;
    }

}

修改控制器内的方法如下-

公共WatchDTO添加(@Request estBody UserStat userStat){

}

这应该可以

 类似资料:
  • 根据CloudFront的文档(https://docs.aws.amazon.com/amazoncloudfront/latest/developerguide/requestandresponseBehaviorCustomOrigin.html),客户端IP可以是头的前面、中间和结尾。 是Rignt吗?那我怎么才能得到真正的客户端IP呢?

  • 我正在写一个小小的短信网关,供几个项目使用, 我实现了laravel passport身份验证(客户端凭据授予令牌) 然后,我向api中间件组添加了: 逻辑工作正常,现在在我的控制器中,我需要让客户机与有效令牌关联。 routes.php 出于明显的安全原因,我无法将客户端id与消费者请求一起发送,例如,

  • 如何通过API向数据源/主报表传递参数? 附加问题:是否可以将此参数/参数添加到计划报表中?

  • 问题内容: req.connection.remoteAddress,req.headers [‘x-forwarded- for’],req.ip,req.ips,这是什么意思? 是否有一种简单的方法可以简单地获取在Node.js / Express中向我的站点发出请求的客户端/用户代理的IP地址?我不了解所有代理内容,也不了解req对象的所有属性之间的所有区别。另外,我不了解Express的“

  • 问题内容: 这是我的带有json响应的模型: 在这里,我通过http.request得到它。为什么我接收(数据)字符串而不是json? 如何获取json? 问题答案: http以字符串形式发送/接收数据…这就是事实。您正在寻找将该字符串解析为json。

  • 我有一个Web角前端,API网关受Cognito和Lambda保护,用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf 在我的lambda中,我需要获得其他用户的信息,如名字、