首页 > 解决方案 > 读取 JSON 键值并将其存储在 XSLT 变量中

问题描述

请帮助我获取可在 DataPower 中用于以下输入的 XSLT 代码

Input: {
   "Timestamp": "2018-12-19T10:52:21.0870605-05:00",
   "ResponseType": "Success",
    "Name":    [
            {
         "Code": "1001",
         "Description": "ABC",
         "Number": "123"         
      },
            {
         "Code": "1002",
         "Description": "XYZ",
         "Number": "123"   
      },
            {
         "Code": "1003",
         "Description": "PQA",
         "Number": "123"   
      },
            {
         "Code": "1004",
         "Description": "MNO",
         "Number": "123"   
      }
   ]
}

输出:

XSLT 变量

xsl:variable_code = 1001,1002,1003,1004

xsl:variable_Name : ABC,XYZ,PQA,MNO

标签: xslt-1.0ibm-datapower

解决方案


XSLT 本身不能使用这种格式(XSLT 输入始终是 XML,但输出可以是任何格式)。

有办法解决这个问题。

1 - 改用 Gatewayscript 转换。您可以在自己的 Datapower “示例”文件夹中找到示例。文件以“.js”结尾

2 - 您仍然可以在 XSLT 中执行此操作,但需要使用输入设置和特殊的隐藏魔法变量将 JSON 自动转换为 XML。如何:

  1. 在您的对象(XML 防火墙或多协议 Gwy)中,将输入指定为“JSON”
  2. 在要使用 XSLT 解释此输入的规则步骤中,不要使用可变的“PIPE”或“INPUT”作为输入,而是使用“__JSONASJSONX”。更多信息在这里
  3. 这将允许您在转换为 XML 后导航 JSON 文件。

这是转换的示例

其余的只是 Datapower 上的普通 XSLT 编程...您可以创建 JSON 或 XML 输出...您的选择!


推荐阅读