1-1 Jolt中JSON对象的映射(没有唯一的密钥标识符)

时间:2018-03-13 03:48:51

标签: json jolt

我有一个JSON对象列表,从SQL查询的结果转换而来。 JSON看起来像这样:

[ {
        "CREATE_DATE_TIME" : "2018-02-04 11:00:03.0",
        "EXTERNAL_ID" : "1111",
        "CERT_NUMBER" : "123",
        "DESCRIPTION" : "DESC 1",
        "SOURCE_SYSTEM" : "WOULDIWAS"
    }, {
        "CREATE_DATE_TIME" : "2018-03-01 11:25:03.0",
        "EXTERNAL_ID" : "2222",
        "CERT_NUMBER" : "456",
        "DESCRIPTION" : "DESC 2",
        "SOURCE_SYSTEM" : "SHOOKSPEARE"
    }, 
    ... 
]

JSON转换后的输出应该是这样的:

{
    "Jobs": [
        {
            "Notification": {
                "ActivityDate" : "2018-02-04 11:00:03.0",
                "ExternalId" : "1111",
                "CertNum" : "123",
                "Description" : "DESC 1",
                "SourceSystem" : "WOULDIWAS",
                "RecordType" : "Task Notification"
            }, {
            "Notification": {   
                "ActivityDate" : "2018-03-01 11:25:03.0",
                "ExternalId" : "2222",
                "CertNum" : "456",
                "Description" : "DESC 2",
                "SourceSystem" : "SHOOKSPEARE",
                "RecordType" : "Task Notification"
            }, 
        ... 
    ]
}

(RecordType是一个文字字符串,不是从输入JSON派生的)

输入JSON中的每个行/条目({}中包含的JSON对象)保证是唯一的,但这里没有表示这一点的键。输入中的行/条目应对应于输出中的1-1到{ Notification: {...} }。我应该如何构建我的Jolt Spec来做到这一点?

1 个答案:

答案 0 :(得分:1)

不要冒犯或任何事情,但你应该发布你已经尝试过的东西。 无论如何,这里是获得预期输出格式的规范

[ { "operation": "shift", "spec": { "*": "Jobs[].Notification" } } ]

我建议你自己尝试重命名这些字段,因为练习JOLT是最好的学习方法

如果您仍然需要帮助,我会为您完成答案。

这里有一些阅读材料DocumentationSlide deck。 你可以从issues page中学到很多东西,Milo Simpson已经解决了大部分问题的查询。