我使用Mule http请求组件调用了一个REST Web服务。 webservice确实响应了JSON有效负载,现在我必须解析这个json并更新我的本地数据库。
如何解析JSON响应?如何迭代JSON并更新我的数据库?
请咨询
-Paresh
答案 0 :(得分:0)
您可以使用JSON-to-object
转换器迭代JSON,然后使用批量更新。像。的东西。
<flow name="testdbFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/>
<set-payload value="{"1234567890123456":"Y","1234567890123457":"Y"}" mimeType="application/json" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:input-payload />
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
(payload mapObject {
x: {
key : $$,
value : $
}
}).*x]]>
</dw:set-payload>
</dw:transform-message>
<json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object"/>
<db:update config-ref="MySQL_Configuration" bulkMode="true" doc:name="Database">
<db:dynamic-query><![CDATA[UPDATE cwg_ws_data SET SyncFlag = '#[payload.value]' WHERE IMEI = '#[payload.key]']]></db:dynamic-query>
</db:update>
</flow>
输入为{"1234567890123456":"Y","1234567890123457":"Y"}
。有关详细信息,请参阅this answer。