猿问

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

我正在使用 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);

    }


噜噜哒
浏览 266回答 1
1回答

呼啦一阵风

在我看来,有几件事需要检查。首先,不建议使用相同的对象在数据库中存储数据并响应请求。数据对象可以是 GangUser、User 和 Gang,而响应对象可以是 GangUserApi、UserApi 和 GangApi。使用这种方法,您将能够修改一个图层而无需修改另一个图层。其次,您的服务需要一个里面有一个 User 的 GangUser。用于将其存储在数据库中的同一用户对象。你只是在那里发送一个字符串(“1”)而不是一个对象。一个快速的解决方案可能是修改 JSON:{&nbsp; &nbsp; "role": "member",&nbsp; &nbsp; "gang": "3",&nbsp; &nbsp; "user": {&nbsp; &nbsp; &nbsp; &nbsp; "id":"1"&nbsp; &nbsp; }}但我想知道你是否明白发生了什么。这比仅仅为您提供快速解决方案更重要。
随时随地看视频慕课网APP

相关分类

Java
我要回答