zoukankan      html  css  js  c++  java
  • Cannot deserialize instance of `java.lang.String` out of START_OBJECT token

    前端请求进入后端控制器报错【Cannot deserialize instance of `java.lang.String` out of START_OBJECT token】,从错误信息上看是json解析错误,对比下前端请求发送内容和后端控制器接收参数即可发现问题。

    前端发送内容:

    api_save(JSON.stringify({
      po: this.form
    })).then(response => {
      if (response.code === 200) {
        this.$message.success('保存成功')
        this.$emit('saved')
      }
    }).catch(() => {
      this.$message.error('保存失败')
    })

    后端控制器接收参数:

    @PostMapping("/save")
    public Return<?> save(@RequestBody Map<String, String> paramMap) {
        try {
            service.save(JSON.parseObject(paramMap.get("po"), ProgEbs.class));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return Return.success("保存成功");
    }

    对比后发现前端发送请求是对象,而后端控制器接收参数是字符串,因此在控制器后端进行json解析错误了,这时候只要把前端发送请求内容调整成json字符串或者后端控制器接收参数调整为Object对象即可。

    这里使用的前者:

    api_save(JSON.stringify({
      po: JSON.stringify(this.form)
    })).then(response => {
      if (response.code === 200) {
        this.$message.success('保存成功')
        this.$emit('saved')
      }
    }).catch(() => {
      this.$message.error('保存失败')
    })

    这样就解决了报错问题,后端控制器也能正常接收参数了。

    "后来我才知道,那不是我的花,我只是途径了它的盛放。"

    你要去做一个大人,不要回头,不要难过。
  • 相关阅读:
    android 导入项目 项目中文字乱码问题
    ListView的setOnItemClickListener不能执行
    如何让Android横竖屏切换时不销毁当前activity
    android:screenOrientation属性--限制横竖屏切换
    nwu 新生题解【第一套】
    codeforces #371div2 (ABC)
    HDU
    HDU
    树状数组
    HDU
  • 原文地址:https://www.cnblogs.com/yanggb/p/15539571.html
Copyright © 2011-2022 走看看