1

我有 xml 有效负载,我想将其转换为 json 消息。为此,我使用了带有 freemarker 模板的有效负载工厂调解器。我的 XML 有 2 个命名空间。

<?xml version="1.0" encoding="utf-8"?>
<AAA xmlns="http://www.example.com/XMLSchema">
    <BBB>
        <abc>xxxxxxx</abc>
        <msg>9212840000000996</msg>
        <ref>x212840000000078</ref>
    </BBB>
    <CCC xmlns="http://www.example.com/sc1">
        <cf1>
            <edg>N</edg>
            <nic>000265</nic>
            <ccc>I</ccc>
            <nnn>TESTNOTIF5</nnn>
        </cf1>
    </CCC>
</AAA>

这是我根据文档实现的有效负载工厂调解器。

<payloadFactory media-type="json" template-type="freemarker">
        <format><![CDATA[
<#ftl ns_prefixes={"n1": "http://www.example.com/XMLSchema", "n2": "http://www.example.com/sc1"}
      output_format="XML">
        {  
        "aaaaaa": "TestValue1", 
        "bbbb": "$payload.n1:AAA.n2:CCC.n2:cf1.n2.nic", 
        "ccc": "1299"}]]></format>
        <args/>
    </payloadFactory>

但我无法从集成工作室保存这个实现。这里有什么错误?

4

1 回答 1

0

这个选项似乎只在 API Manager 4.0 上可用。关于 PayloadFactory 的 Micro Integrator 文档没有提到 freemarker 模板。

PayloadFactory 上的最新微集成器文档

你可以尝试以下

<payloadFactory media-type="json">
    <format>
    {  
    "aaaaaa": "TestValue1", 
    "bbbb": "$1", 
    "ccc": "1299"}</format>
    <args>
        <arg expression="//ns1:CCC/ns1:cf1/ns1:nic" evaluator="xml" xmlns:ns1="http://www.example.com/sc1"/>
    </args>
</payloadFactory>
于 2021-11-15T12:29:23.053 回答