如何使用一个POST请求将多个对象添加为JsonArray



我正在尝试使用一个POST请求向API添加多个对象。我已经阅读了这个问题的一些可能的解决方案,其中之一是在我为接收该请求而创建的方法中包含参数ListyourObjectList。然后我可以发送多个";对象";在该请求中作为JSON ex:

[
{

"prop1": "value1",
"prop2": "value2"
},
{

"prop1": "value3",
"prop2": "value4"
}
]

问题是,当我这样做时,我所有的Object getter都会抛出错误";无法解析"List"中的方法"myGetter";。

我该怎么做才能让它发挥作用?

myDTO:

@NoArgsConstructor
public class InvoiceDTO {
@NotNull(message = "PersonId can't be null")
@PersonId
private String personId;
@NotNull(message = "invoiceDate can't be null")
// @DateTimeFormat(iso = DateTimeFormatter.ofPattern("yyyy-MM-dd"))
@PastOrPresent
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate invoiceDate;
@NotNull(message = "invoiceNumber can't be null")
private String invoiceNumber;
@NotNull(message = "phone number can't be null")
private Long phoneNumber;
@NotNull(message = "invoiceAmount can't be null")
private Double invoiceAmount; //how much does the client ows the org
@NotNull(message = "invoiceNumber can't be null")
private String accountNumber;
private int msdin; //Type of subscription
}

Json对象可以包含一个对象列表,但我确信您所写的列表不是有效的Json对象。因此,有效的JSON对象将始终位于{}之间

如果您的rest端点需要List类型的对象,则尝试使用

{
[
{

"prop1": "value1",
"prop2": "value2"
},
{

"prop1": "value3",
"prop2": "value4"
}
]
}

如果你的端点期望一个包含List的对象(这是一个更好的选择,因为一个对象可以很容易地修改为包含各种东西,从列表的一侧添加额外的参数(,那么尝试:

{
"myList":[
{

"prop1": "value1",
"prop2": "value2"
},
{

"prop1": "value3",
"prop2": "value4"
}
]
}

我不得不将对象传递给List类型的方法。然后我必须想办法循环浏览这个列表,所以我使用了循环,例如:

for (InvoiceDTO invoices : invoiceDTO) {
//your code
}

现在,问题解决了。

最新更新