【发布时间】:2017-02-06 02:57:48
【问题描述】:
我使用 Mule http 请求组件调用了一个 REST Web 服务。 Web 服务确实响应了 JSON 有效负载,现在我必须解析这个 json 并更新我的本地数据库。
如何解析 JSON 响应?如何遍历 JSON 并更新我的数据库?
请指教
-帕雷什
【问题讨论】:
我使用 Mule http 请求组件调用了一个 REST Web 服务。 Web 服务确实响应了 JSON 有效负载,现在我必须解析这个 json 并更新我的本地数据库。
如何解析 JSON 响应?如何遍历 JSON 并更新我的数据库?
请指教
-帕雷什
【问题讨论】:
您可以使用 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。
【讨论】: