首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在dataweave 2.0 Mule4中将XML CDATA格式转换为JSON格式

在dataweave 2.0 Mule4中将XML CDATA格式转换为JSON格式
EN

Stack Overflow用户
提问于 2021-02-19 09:06:07
回答 3查看 1.5K关注 0票数 0

下面是我的示例XML响应

代码语言:javascript
运行
复制
<DATA><![CDATA[
<RESULT>0</RESULT>
<Addresses>
<Address>
 ...............
</Address>
<Address>
 ...............
</Address>
<Address>
 ...............
</Address>
</Addresses>

]]></DATA>

我想把它转换成一个JSON对象数组。我使用了下面的代码,但它只是返回CDATA字符串,而不是JSON格式

代码语言:javascript
运行
复制
%dw 2.0
output application/json encoding="UTF-8"
---
payload

我在Mule 4中使用数据编织2.0

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-19 11:11:34

为了补充Salim的答案,您可以尝试使用以下DataWeave表达式来访问Addresses元素:

代码语言:javascript
运行
复制
%dw 2.0
output application/json
---
read("<root>" ++ payload.DATA ++ "</root>", "application/xml").root.Addresses

其思想是用根节点包装数据内容,然后使用它访问内部元素。

票数 2
EN

Stack Overflow用户

发布于 2021-02-19 09:27:30

尝试使用以下脚本:

输入

代码语言:javascript
运行
复制
<DATA><![CDATA[
<Person>
<RESULT>0</RESULT>
<Addresses>
<Address>
 ...............
</Address>
<Address>
 ...............
</Address>
<Address>
 ...............
</Address>
</Addresses>
</Person>

]]></DATA>

脚本

代码语言:javascript
运行
复制
%dw 2.0
output application/json
---
read(payload.DATA, "application/xml")

输出

代码语言:javascript
运行
复制
{
  "Person": {
    "RESULT": "0",
    "Addresses": {
      "Address": "\n ...............\n",
      "Address": "\n ...............\n",
      "Address": "\n ...............\n"
    }
  }
}
票数 3
EN

Stack Overflow用户

发布于 2021-06-16 02:33:47

我听从了你的指示,结果成功了。变压器1:

%dw 2.0输出应用程序/json

读取(payload.DATA,"application/xml")

变压器2:

%dw2.0输出应用程序/java

写(有效载荷,'application/xml')

谢谢dk

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66274583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档