Jolt 变换在响应数组中给出 null

问题描述 投票:0回答:1

我正在使用以下输入 JSON :

[
  {
    "referencetype": "ProductToProductPlatformReferenceLink",
    "objecttype": "Product Platform",
    "id": "PP_W",
    "name": "Wiley",
    "values": {
      "EventTrigger": "",
      "PlatformID": "W",
      "PlatformName": "Wiley",
      "PlatformURL": "www.wiley.com"
    },
    "referenceValues": {},
    "parent": []
  },
  {
    "referencetype": "ProductToSubjectHierarchyLink",
    "objecttype": "Subject Code",
    "id": "SC_LS01",
    "name": "General Biology",
    "values": {
      "EventTrigger": "",
      "Level2Name": [
        "General Life Sciences"
      ],
      "OLCodeName": [
        "General Biology"
      ],
      "SubjectCode": "LS01",
      "SubjectCodeName": [
        "General Biology"
      ],
      "SubjectGroup": [
        "0009"
      ],
      "SubjectGroupName": [
        "Life Sciences"
      ],
      "SubjectLevel2": [
        "000061"
      ],
      "SubjectOnlineCode": [
        "LS01"
      ]
    },
    "referenceValues": {
      "SubjectCodeSequence": ""
    },
    "parent": []
  },
  {
    "referencetype": "ProductToSubjectHierarchyLink",
    "objecttype": "Subject Code",
    "id": "SC_LS30",
    "name": "Cell & Molecular Biology",
    "values": {
      "EventTrigger": "",
      "Level2Name": [
        "Cell & Molecular Biology"
      ],
      "OLCodeName": [
        "Cell & Molecular Biology"
      ],
      "SubjectCode": "LS30",
      "SubjectCodeName": [
        "Cell & Molecular Biology"
      ],
      "SubjectGroup": [
        "0009"
      ],
      "SubjectGroupName": [
        "Life Sciences"
      ],
      "SubjectLevel2": [
        "000030"
      ],
      "SubjectOnlineCode": [
        "LS30"
      ]
    },
    "referenceValues": {
      "SubjectCodeSequence": ""
    },
    "parent": []
  },
  {
    "referencetype": "ProductToSubjectHierarchyLink",
    "objecttype": "Subject Code",
    "id": "SC_LS36",
    "name": "Biochemistry",
    "values": {
      "EventTrigger": "",
      "Level2Name": [
        "Cell & Molecular Biology"
      ],
      "OLCodeName": [
        "Biochemistry"
      ],
      "SubjectCode": "LS36",
      "SubjectCodeName": [
        "Biochemistry"
      ],
      "SubjectGroup": [
        "0009"
      ],
      "SubjectGroupName": [
        "Life Sciences"
      ],
      "SubjectLevel2": [
        "000030"
      ],
      "SubjectOnlineCode": [
        "LS36"
      ]
    },
    "referenceValues": {
      "SubjectCodeSequence": ""
    },
    "parent": []
  }
]

我的预期输出是:

{
  "subject": [
    {
      "subjectCategoryLevel2": "000061",
      "subjectCategoryLevel2Name": "General Life Sciences",
      "subjectCategoryWOLCode": "LS01",
      "subjectCategoryWOLName": "General Biology",
      "subjectCategory": "LS01",
      "subjectCategoryName": "General Biology",
      "subjectCodeSequence": "",
      "subjectCategoryGroup": "0009",
      "subjectCategoryGroupName": "Life Sciences"
    },
    {
      "subjectCategoryLevel2": "000030",
      "subjectCategoryLevel2Name": "Cell & Molecular Biology",
      "subjectCategoryWOLCode": "LS30",
      "subjectCategoryWOLName": "Cell & Molecular Biology",
      "subjectCategory": "LS30",
      "subjectCategoryName": "Cell & Molecular Biology",
      "subjectCodeSequence": "",
      "subjectCategoryGroup": "0009",
      "subjectCategoryGroupName": "Life Sciences"
    },
    {
      "subjectCategoryLevel2": "000030",
      "subjectCategoryLevel2Name": "Cell & Molecular Biology",
      "subjectCategoryWOLCode": "LS36",
      "subjectCategoryWOLName": "Biochemistry",
      "subjectCategory": "LS36",
      "subjectCategoryName": "Biochemistry",
      "subjectCodeSequence": "",
      "subjectCategoryGroup": "0009",
      "subjectCategoryGroupName": "Life Sciences"
    }
  ]
}

我正在使用规范文件将输入转换为预期的输出:

规格文件

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "referencetype": {
          "ProductToSubjectHierarchyLink": {
            "@2": {
              "values": {
                "SubjectLevel2": {
                  "0": "subject[&6].subjectCategoryLevel2"
                },
                "Level2Name": {
                  "0": "subject[&6].subjectCategoryLevel2Name"
                },
                "OLCodeName": {
                  "0": "subject[&6].subjectCategoryWOLName"
                },
                "SubjectCodeName": {
                  "0": "subject[&6].subjectCategoryName"
                },
                "SubjectCode": "subject[&5].subjectCategoryWOLCode",
                "SubjectGroup": {
                  "0": "subject[&6].subjectCategoryGroup"
                },
                "SubjectGroupName": {
                  "0": "subject[&6].subjectCategoryGroupName"
                },
                "SubjectOnlineCode": {
                  "0": "subject[&6].subjectCategory"
                }
              },
              "referenceValues": {
                "SubjectCodeSequence": "subject[&5].subjectCodeSequence"
              }
            }
          }
        }
      }
    }
  }
]

但是我在输入数组中得到null

{
  "subject": [
    null,
    {
      "subjectCategoryLevel2": "000061",
      "subjectCategoryLevel2Name": "General Life Sciences",
      "subjectCategoryWOLName": "General Biology",
      "subjectCategoryName": "General Biology",
      "subjectCategoryWOLCode": "LS01",
      "subjectCategoryGroup": "0009",
      "subjectCategoryGroupName": "Life Sciences",
      "subjectCategory": "LS01",
      "subjectCodeSequence": ""
    },
    {
      "subjectCategoryLevel2": "000030",
      "subjectCategoryLevel2Name": "Cell & Molecular Biology",
      "subjectCategoryWOLName": "Cell & Molecular Biology",
      "subjectCategoryName": "Cell & Molecular Biology",
      "subjectCategoryWOLCode": "LS30",
      "subjectCategoryGroup": "0009",
      "subjectCategoryGroupName": "Life Sciences",
      "subjectCategory": "LS30",
      "subjectCodeSequence": ""
    }
  ]
}
json jolt
1个回答
0
投票

发生这种情况是因为列表中的第一个元素被忽略,并且结果以等于

1

的索引开始

或者,您可以将不同的对象分组,然后创建列表,如下例所示。

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "referencetype": {
          "ProductToSubjectHierarchyLink": {
            "@2": {
              "values": {
                "SubjectLevel2": {
                  "0": "subject-&6.subjectCategoryLevel2"
                },
                "Level2Name": {
                  "0": "subject-&6.subjectCategoryLevel2Name"
                },
                "OLCodeName": {
                  "0": "subject-&6.subjectCategoryWOLName"
                },
                "SubjectCodeName": {
                  "0": "subject-&6.subjectCategoryName"
                },
                "SubjectCode": "subject-&5.subjectCategoryWOLCode",
                "SubjectGroup": {
                  "0": "subject-&6.subjectCategoryGroup"
                },
                "SubjectGroupName": {
                  "0": "subject-&6.subjectCategoryGroupName"
                },
                "SubjectOnlineCode": {
                  "0": "subject-&6.subjectCategory"
                }
              },
              "referenceValues": {
                "SubjectCodeSequence": "subject-&5.subjectCodeSequence"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "subject[]"
    }
  }
]
© www.soinside.com 2019 - 2024. All rights reserved.