首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON变压器

JSON变压器
EN

Stack Overflow用户
提问于 2019-12-31 05:18:26
回答 1查看 164关注 0票数 0

我想将给定的json转换成给定的格式,使用format:-

输入JSON

代码语言:javascript
复制
{
  "dataType": "XYZ",
  "payload": {
    "Revision": 0,
    "identifier2": {
      "xyz": 215,
      "version": 1,
      "revision": 1,
      "Type": 12
    },
    "timestamp": "2019-12-10T06:24:01.708Z",
    "Currency": "SEK",
    "identifier3": {
      "xyz": 170,
      "version": 1,
      "revision": 5,
      "Type": 40
    }
  },
  "datatype1": "ABC"
}

**Output JSON:-**

   {
  "dataType": "XYZ",
  "payload": {
    "Revision": 0,
    "identifier2": {
      "xyz": 215,
      "version": 1,
      "revision": 1,
      "Type": 12
    },
    "timestamp": "2019-12-10T06:24:01.708Z",
    "Currency": {
      "Value": "SEK",
      "Domain": null
    },
    "identifier3": {
      "xyz": 170,
      "version": 1,
      "revision": 5,
      "Type": 40
    }
  },
  "datatype1": "ABC"
}

-我的规范:-

代码语言:javascript
复制
      [
        {
          "operation": "shift",
          "spec": {
            "payload": {
              "Currency": {
                "*": {
                  "$": "&2.Value",
                  "@": "&2.Domain"
                }
              },
              "*": "payload.&"
            },
            "*": ".&"
          }
      }
]

当我使用这个规范时,它会将货币标签移出有效载荷。请告诉我如何正确地做它。我可以使用这个规范来分割货币,但它会从有效载荷标签中移出。

EN

回答 1

Stack Overflow用户

发布于 2020-01-01 13:58:25

您的映射规则&2,2.Value将2(货币)置于顶层,如果您将该映射规则更改为有效载荷。&2.Value或& at;2.Value,它将按预期将其置于有效载荷下。

我用demo演示网站测试了所有的颠簸规格

快速修复

带文字有效载荷

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "payload": {
        "Currency": {
          "*": {
            "$": "payload.&2.Value",
            "@": "payload.&2.Domain"
          }
        },
        "*": "payload.&"
      },
      "*": ".&"
    }
  }
]

通配符&3 (从当前位置上升3级):

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "payload": {
        "Currency": {
          "*": {
            "$": "&3.&2.Value",
            "@": "&3.&2.Domain"
          }
        },
        "*": "payload.&"
      },
      "*": ".&"
    }
  }
]

狂乱地摇晃

万一您的预期输入文档与您提供的示例JSON格式相同:

代码语言:javascript
复制
{
  ...
  "payload": {
    ...
    "Currency": "value"
    ...
  }
  ...
}

而且,您也不能期望payload.Currency的形式是:

代码语言:javascript
复制
...
"Currency": {
  "key": "value",
  "key1": "value1",
  ...
}
...

您的最终目标是将payload.Currency的值映射到payload.Currency.Value,并将默认值null添加到payload.Currency.Value (如果为空),payload.Currency.Domain (根据示例输出)

然后,您可以考虑一种更直接/更简单的规范:

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "payload": {
        "Currency": "&1.&.Value",
        "*": "&1.&"
      },
      "*": "&"
    }
  },
  {
    "operation": "default",
    "spec": {
      "payload": {
        "Currency": {
          "Value": null,
          "Domain": null
        }
      }
    }
  }
]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59539893

复制
相关文章

相似问题

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