【问题标题】:How to JSON wrapper ( {"text": " ) from CSV response in WSO2如何从 WSO2 中的 CSV 响应中进行 JSON 包装({“text”:“)
【发布时间】:2020-06-23 18:36:08
【问题描述】:

我是 WSO2 的新手。我编写了自定义 Java 类中介器来将 JSON 请求转换为 CSV 格式。我有一个代理服务,可以将生成的 CSV 文件 SFTP 到 (MoveIT) 文件夹。

Custom Mediator 将 JSON 请求正确转换为 CSV 格式。但是,当使用 transport.vfs.replyfilename 将 CSV 文件发送到端点时,我会在 CSV 文件中看到如下所示的“文本”包装器:

{"text":"1,F20175_A.CSV,20200623135039\n2,123456789,2017-MO-BX-0048,123456789,987654321,Y/N,C/A,20190101,20201231,20190930,75000,44475.86,15563.52,0.00,15563.52,0.00,60039.38,14960.62,60039.38,0.00,20191218\n3,1,999999999\n"}

我将 contentType、MessageType 属性设置为“text/plain”。我还使用 vfs.ContentType 设置为 text/plain 如下: 文本/纯文本

我知道我错过了一些东西。有人在 WSO EI 6.6 中遇到过这个问题吗?我应该继续编写自定义消息格式化程序吗?有什么建议吗?

我希望输出写成:

1,F20169_A.CSV,20200617153638
2,123456789,2017-MO-BX-0048,123456789,987654321,Y/N,C/A,20190101,20201231,20190930,75000,44475.86,15563.52,0.00,15563.52,0.00,60039.38,14960.62,60039.38,0.00,20191218
3,1,999999999

谢谢!

【问题讨论】:

    标签: csv wso2 transform wso2esb


    【解决方案1】:

    似乎在转换为 CSV 格式后,结果可在文本标签中使用。因此,当您写入文件时使用文件连接器 [1] 使用 //text() XPath 访问文本内容。请参考下面的 inputContent 配置示例。

    <fileconnector.create>
        <filePath>{$ctx:filePath}</filePath>
         <inputContent>{//text()}</inputContent>
        <encoding>{$ctx:encoding}</encoding>
        <setTimeout>{$ctx:setTimeout}</setTimeout>
        <setPassiveMode>{$ctx:setPassiveMode}</setPassiveMode>
        <setSoTimeout>{$ctx:setSoTimeout}</setSoTimeout>
        <setUserDirIsRoot>{$ctx:setUserDirIsRoot}</setUserDirIsRoot>
        <setStrictHostKeyChecking>{$ctx:setStrictHostKeyChecking}</setStrictHostKeyChecking>
    </fileconnector.create>
    

    [1]-https://docs.wso2.com/display/ESBCONNECTORS/Working+with+the+File+Connector#WorkingwiththeFileConnector-create

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 2015-04-13
      • 2014-07-30
      • 1970-01-01
      • 2021-09-06
      • 2016-05-12
      • 2021-05-19
      相关资源
      最近更新 更多