是否有在线工具可以为复杂的 JSON 负载生成 JSON 规范?

问题描述

我有一个带有嵌套数组的复杂 JSON 有效负载。我需要创建一个 JSON 规范来输出与我今天相同的有效负载,以便如果发送系统添加了任何新字段,我希望它们被删除。 我需要此功能,因为在 TIBCO 的 Business Works 中,我需要针对我为此 JSON 有效负载生成的 XSD 解析此输出。不幸的是,如果新字段到达 JSON 有效负载中,则使用 XSD 转换为 XML 会失败,因为它会进行严格的比较,并且目前在 Business Works 中无法绕过它。

我的 JSON 示例是

{
  "items": [
    {
      "id": "000fd75c2b2fd30cadaae94c532d82f2408d95454996941002d8c8088157d03b","sourceIdentifier": {
        "dataPartitionId": "877307a0-b5f5-4a01-9d4b-9fead6bcf788","id": "103357"
      },"birthDate": "YYYY-MM-DD","gender": {
        "codings": [
          {
            "code": "248153007","display": "Male","system": "2.16.840.1.113883.6.96"
          }
        ],"sourceCodings": [
          {
            "code": "248153007","text": "Male"
      }
    }
  ],"totalResults": 1,"firstLink": "xyz","lastLink": "abc"
}

我想要一个 JOLT 规范,该规范向下并指定上述有效负载的每个子元素。 我在下面有这个简单的规范,但如果发送应用程序添加一个新字段,它也会出现在输出中,这对我来说是个问题。

[
  {
    "operation": "shift","spec": {
      "items": "items"
    }
  }
]

感谢任何帮助。谢谢。

解决方法

要从 JSON 字符串中静默过滤 BusinessWorks 未知的字段(这意味着它们未在 BusinessWorks 使用的 XSD 中定义),您可以使用 BW 6.6.1 中引入的“忽略其他 JSON 字段”选项。>

请参阅以下发行说明摘录:

支持在处理模式时忽略额外的 JSON 字段

对于问题的另一部分,您可以使用以下 Studio 功能: .右键单击“架构”文件夹 .选择“新闻 -> JSON 有效负载中的 XML 架构文件”

但是这种方法有一些限制,我认为它不会管理数组。