Micronaut CompileStatic JSON对象-静态类型检查-无此类属性:类的书号:java.lang.Object

时间:2019-01-02 00:57:15

标签: groovy micronaut

在我的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

有没有办法使用编译静态注释来修复此错误消息?

谢谢 SR

2 个答案:

答案 0 :(得分:1)

在Jeff Brown的帮助下,我进行了更改。我的保存方法是这样的。

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

Micronaut JSON post strip the Qutoes

答案 1 :(得分:1)

您也可以使用您的方法,而不用更改它进行解析。我遇到了同样的问题,对我有用的方法是使用String而不是object。只需将JSON字符串与@BODY一起使用,然后使用ObjectMapper()对其进行解析。

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

https://stackoverflow.com/a/54905403/7803105