Micronaut CompileStatic JSON 对象 - 静态类型检查 - 没有这样的 属性: class 的 bookid: java.lang.Object

Micronaut CompileStatic JSON object -Static type checking- No such property: bookid for class: java.lang.Object

在我的 Micronaut 控制器中,我有以下代码来解析 JSON 对象。当我使用 @CompileStatic 注释时,它会抛出以下错误。

  @Post("/save")   
   def save(@Body Object JSON) {
    String bookid=JSON?.bookid
      String name=JSON?.name
    def b =bookService.save(bookid,name)
    return HttpResponse.created(b)
   }

错误

BookController.groovy: 58: [Static type checking] - No such property: bookid for class: java.lang.Object

有没有办法用 compilestatic 注释修复这个错误消息?

谢谢 SR

在 Jeff Brown 的帮助下,我已经改变了。我的保存方法是这样的。

  @Post('/')
    Book save(Book b) {
        bookService.save b
    }

您也可以使用您的方法而不是更改它,因为 parsing.I 遇到了同样的问题,对我有用的方法是使用字符串而不是对象。只需将 JSON String 与 @BODY 一起使用,然后使用 ObjectMapper().

解析它

这是我在其他问题上发布的答案,希望对您有所帮助。