我正在使用Kotlin
和Vert.x
,我有:
data class Product( var id: UUID? = UUID.randomUUID(), var name: String? = null, @JsonFormat(shape=JsonFormat.Shape.ARRAY) var pictures: JsonArray? = JsonArray() )
并且我正在尝试在
Array
中发布对象的pictures
。我在请求正文中的JSON是这样的:
{ "name": "Test", "pictures": [{"test": "a"}] }
当我像上面一样在
Object
内发送Array
时,收到此错误:
[ERROR] 2020-01-02 13:04:26.519 [vert.x-eventloop-thread-0] Route - io.vertx.core.json.DecodeException: Failed to decode:Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of START_OBJECT token at [Source: (String)"{ "name": "Test", "pictures": [{"test": "a"}] } "; line: 8, column: 15] (through reference chain: br.com.test.api.product.Product["pictures"]->io.vertx.core.json.JsonArray["list"])
但是如果我像这样发送一个空的
Array
,它的工作原理就是:
{ "name": "Test", "pictures": [] }
并且我收到正确的答复:
{"id":"a6d2d319-42a9-4d4a-b16a-6bf4eb76e36d","name":"Test","pictures":[]}
所以问题是,如何在客户中发布
Array
的Objects
?谢谢!
我正在使用Kotlin和Vert.x,并且具有:数据类Product(var id:UUID?= UUID.randomUUID(),var name:String?= null,@JsonFormat(shape = JsonFormat.Shape.ARRAY) var图片:...
如果您能够拥有一个与“图片”数组中的对象形状相匹配的对象,那么以下方法应该起作用: