为了账号安全,请及时绑定邮箱和手机立即绑定

JSON 解析错误:无法构造`com.example.greetapp.domain.User`

JSON 解析错误:无法构造`com.example.greetapp.domain.User`

噜噜哒 2021-12-10 17:04:45
我正在使用 JHipster 并运行以下 curl 命令:POST/api/gang-users与身体:{    "role": "member",    "gang": "3",    "user": "1"}但我收到以下错误:JSON 解析错误:无法构造实例 com.getgreetapp.greetapp.domain.User(尽管至少存在一个 Creator):没有从字符串值 ('1') 反序列化的字符串参数构造函数/工厂方法;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法构造实例com.getgreetapp.greetapp.domain.User(尽管至少存在一个 Creator):没有字符串参数构造函数/工厂方法可以从字符串值 ('1') 反序列化\n 在 [来源:(PushbackInputStream);第 4 行,第 10 列](通过引用链:com.getgreetapp.greetapp.domain.GangUser[\"user\"])帮派用户资源 createGangUser@PostMapping("/gang-users")    @Timed    public ResponseEntity<GangUser> createGangUser(@Valid @RequestBody GangUser gangUser) throws URISyntaxException {        log.debug("REST request to save GangUser : {}", gangUser);        if (gangUser.getId() != null) {            throw new BadRequestAlertException("A new gangUser cannot already have an ID", ENTITY_NAME, "idexists");        }        User user = userRepository.findById(gangUser.getUser());        GangUser result = gangUserRepository.save(gangUser);        return ResponseEntity.created(new URI("/api/gang-users/" + result.getId()))            .headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString()))            .body(result);    }
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

在我看来,有几件事需要检查。


首先,不建议使用相同的对象在数据库中存储数据并响应请求。数据对象可以是 GangUser、User 和 Gang,而响应对象可以是 GangUserApi、UserApi 和 GangApi。使用这种方法,您将能够修改一个图层而无需修改另一个图层。


其次,您的服务需要一个里面有一个 User 的 GangUser。用于将其存储在数据库中的同一用户对象。你只是在那里发送一个字符串(“1”)而不是一个对象。


一个快速的解决方案可能是修改 JSON:


{

    "role": "member",

    "gang": "3",

    "user": {

        "id":"1"

    }

}

但我想知道你是否明白发生了什么。这比仅仅为您提供快速解决方案更重要。


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 263 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号