我正在使用以下输入 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": ""
}
]
}
发生这种情况是因为列表中的第一个元素被忽略,并且结果以等于
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[]"
}
}
]