骡有效载荷未显示正确的数据
问题描述:
以下格式的顺序数据在有效载荷中。骡有效载荷未显示正确的数据
{
"orders" : {
"order" : [ {
"id" : "4358294728",
"fulfillment" : {
"tracking_number" : "917",
"line-items" : {
"id" : "8367649608"
}
}
}, {
"id" : "4358301768",
"fulfillment" : {
"tracking_number" : "918",
"line-items" : [ {
"id" : "8367663240"
}, {
"id" : "8367663304"
}, {
"id" : "8367663368"
} ]
}
} ]
}
}
我想获得总数。这个有效载荷的订单。 我为此使用了#[message.payload.orders.order.size()]。 它给出正确的输出。
但对于一个订单它给错误的输出= 2,但是是1
{
"orders" : {
"order" : {
"id" : "4358153416",
"fulfillment" : {
"tracking_number" : "915",
"line-items" : {
"id" : "8367362760"
}
}
}
}
}
能否请你帮我得到所需的输出?
答
我得到正确的数字与以下配置: -
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="Flow1" >
<http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
<json:json-to-object-transformer doc:name="JSON to Object" returnClass="java.util.HashMap"/>
<logger message="Order size #[message.payload.orders.order.size()] " level="INFO" doc:name="Logger"/>
<json:object-to-json-transformer doc:name="Object to JSON"/>
</flow>
,是的,你的JSON是不正确。它应该是: -
{
"orders" : {
"order" :[ {
"id" : "4358153416",
"fulfillment" : {
"tracking_number" : "915",
"line-items" : {
"id" : "8367362760"
}
}
}]
}
}
你已经错过了[后order
答
我认为问题出在你的json结构中。 在第二个:
{
"orders" : {
"order" : {
"id" : "4358153416",
"fulfillment" : {
"tracking_number" : "915",
"line-items" : {
"id" : "8367362760"
}
}
}
}
}
项order
不是数组,因此它赋予“2”作为结果,因为它在其内部具有两个元素:id
和fullfillment
。
你可以让你的JSON正确生成解决这个问题,它会是这样(检查日“[]”):
{
"orders" : {
"order" : [{
"id" : "4358153416",
"fulfillment" : {
"tracking_number" : "915",
"line-items" : {
"id" : "8367362760"
}
}
}]
}
}
此外,该项目order
不必是明确的。你只需要一组orders
。原json应该是:
{
"orders" : [
{
"id" : "4358294728",
"fulfillment" : {
"tracking_number" : "917",
"line-items" : {
"id" : "8367649608"
}
}
},
{
"id" : "4358301768",
"fulfillment" : {
"tracking_number" : "918",
"line-items" : [ {
"id" : "8367663240"
}, {
"id" : "8367663304"
}, {
"id" : "8367663368"
} ]
}
}
]
}