You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XSLT将指定JSON Payload重构为目标格式?

使用XSLT重构JSON格式

原始JSON

{
  "data": {
    "USDCHF:CUR": {
      "PX_LAST": 104.4872,
      "CHG_PCT_1D": 0.3148063,
      "CHG_NET_1D": 0.3279,
      "LONG_COMP_NAME": "Bloomberg Commodity Index"
    },
    "BCOMPR:IND": {
      "PX_LAST": 217.4836,
      "CHG_PCT_1D": 0.4914518,
      "CHG_NET_1D": 1.0636,
      "LONG_COMP_NAME": "Bloomberg Precious Metals Subindex"
    }
  }
}

目标JSON

{
  "data": {
    "Ticker": {
      "Ticker_Name": "USDCHF:CUR",
      "PX_LAST": 104.4872,
      "CHG_PCT_1D": 0.3148063,
      "CHG_NET_1D": 0.3279,
      "LONG_COMP_NAME": "Bloomberg Commodity Index"
    },
    "Ticker": {
      "Ticker_Name": "BCOMPR:IND",
      "PX_LAST": 217.4836,
      "CHG_PCT_1D": 0.4914518,
      "CHG_NET_1D": 1.0636,
      "LONG_COMP_NAME": "Bloomberg Precious Metals Subindex"
    }
  }
}

实现XSLT代码

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="json" indent="yes"/>

  <xsl:template match="/">
    <xsl:map>
      <xsl:map-entry key="'data'">
        <xsl:map>
          <!-- 遍历原始data节点下的所有子项 -->
          <xsl:for-each select="?data?*">
            <xsl:map-entry key="'Ticker'">
              <xsl:map>
                <!-- 将原键名转为Ticker_Name字段 -->
                <xsl:map-entry key="'Ticker_Name'" select="name()"/>
                <!-- 复制原对象的所有属性 -->
                <xsl:for-each select="?*">
                  <xsl:map-entry key="name()" select="."/>
                </xsl:for-each>
              </xsl:map>
            </xsl:map-entry>
          </xsl:for-each>
        </xsl:map>
      </xsl:map-entry>
    </xsl:map>
  </xsl:template>
</xsl:stylesheet>

说明

  • 需使用支持XSLT 3.0的处理器(如Saxon),该版本原生支持JSON的解析与生成
  • 核心逻辑:遍历原始data下的每个键值对,把原键名作为Ticker_Name的值,同时保留原对象的所有字段,最终以Ticker作为每个条目的键名

内容的提问来源于stack exchange,提问作者Yazan Mohammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:12:49