如何从REST发布请求解析Json Array

时间:2020-05-05 17:03:57

标签: java arrays json java-8 java-ee-8

如何解析JSON数组以列出对象。我调用请求的另一个系统的客户端使用主体JSON并返回响应

List<Model1>

作为JSON。当我调用此请求时,我想获得此响应并将其转换为List(在我的系统中)。我知道列表中包含的对象的结构,因此我准备了POJO类以将model1解析为model2。我是否需要将Model2类(系统中的POJO)包装到另一个类?

我正在使用WebTarget,URL已完成,看起来像这样:

WebTarget wt = target();

 wt.path(URL)
.request()
.accept(MediaType.APPLICATION_JSON)
.post(Entity.entity(consumedBody,MediaType.APPLICATION_JSON), Model2);

或者我应该使用包含一个包含List字段的包装类,让我们称之为WrapperModel2

 wt.path(URL)
.request()
.accept(MediaType.APPLICATION_JSON)
.post(Entity.entity(consumedBody,MediaType.APPLICATION_JSON), WrapperModel2);

每次出现错误消息“无法将JSON数组解析为:Model2或WrapperModel2。将Json Array正确解析为特定对象列表的方式是什么?

1 个答案:

答案 0 :(得分:0)

我相信您正在使用JAX-RS,所以请您尝试一下:

.post(Entity.entity(request, MediaType.APPLICATION_JSON_TYPE), new GenericType<List<Model2>>() {
        });