Json Java 中的结构动态变化
Json Structure Dynamically Changes in Java
我有一个 Java 微服务,我正在使用 API 并且它的 JSON 响应动态变化。如果订单包含一件商品,它会发送以下内容:
{
"OrderLines":
{
"lineNumber": "1",
"sku": "12345",
"quantity": "5",
"qtyAvail": "15",
"price": "1.00"
}
}
但是如果订单上有多个项目,它会发送以下内容:
{
"OrderLines": [
{
"lineNumber": "1",
"sku": "12345",
"quantity": "5",
"qtyAvail": "15",
"price": "1.00"
},
{
"lineNumber": "2",
"sku": "246810",
"quantity": "15",
"qtyAvail": "25",
"price": "1.15"
},
{
"lineNumber": "3",
"sku": "3691215",
"quantity": "2",
"qtyAvail": "20",
"price": "2.15"
}
]
}
我还没有看到 API 从单个项目变为数组的情况。通常,我收到一个数组中的单个项目。我们正在使用 Jackson 将 JSON 对象转换为 Java 对象。有谁知道处理这个问题的方法?如果必须的话,我愿意使用其他东西。我只是还没有找到任何解决这个问题的方法。非常感谢任何帮助。
您需要启用 DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY
功能,root class 应该如下所示:
class RootPojo {
@JsonProperty("OrderLines")
private List<OrderLine> orderLines;
...
}
无论是 POJO
中的数组还是单个对象,您都应该始终 List
.
另请参阅:
我有一个 Java 微服务,我正在使用 API 并且它的 JSON 响应动态变化。如果订单包含一件商品,它会发送以下内容:
{
"OrderLines":
{
"lineNumber": "1",
"sku": "12345",
"quantity": "5",
"qtyAvail": "15",
"price": "1.00"
}
}
但是如果订单上有多个项目,它会发送以下内容:
{
"OrderLines": [
{
"lineNumber": "1",
"sku": "12345",
"quantity": "5",
"qtyAvail": "15",
"price": "1.00"
},
{
"lineNumber": "2",
"sku": "246810",
"quantity": "15",
"qtyAvail": "25",
"price": "1.15"
},
{
"lineNumber": "3",
"sku": "3691215",
"quantity": "2",
"qtyAvail": "20",
"price": "2.15"
}
]
}
我还没有看到 API 从单个项目变为数组的情况。通常,我收到一个数组中的单个项目。我们正在使用 Jackson 将 JSON 对象转换为 Java 对象。有谁知道处理这个问题的方法?如果必须的话,我愿意使用其他东西。我只是还没有找到任何解决这个问题的方法。非常感谢任何帮助。
您需要启用 DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY
功能,root class 应该如下所示:
class RootPojo {
@JsonProperty("OrderLines")
private List<OrderLine> orderLines;
...
}
无论是 POJO
中的数组还是单个对象,您都应该始终 List
.
另请参阅: