求助:Jolt转换中处理JSON字符串格式字段的解决方案
Jolt转换解决方案
输入JSON
{"clientid": "129710","delivery_status": [{"x-apiheader": "{\"txnid\":\"129710-122-2079719-0-230502181123\",\"senttime\":\"2023-05-02 18:11:23\",\"mobile\":\"9488702697\",\"linkId\":956}"},{"x-apiheader": "{\"txnid\":\"9710-122-2079719-0-230502181123\",\"senttime\":\"2023-05-02 18:11:23\",\"mobile\":\"9488702697\",\"linkId\":956}"}]}
期望输出JSON
[{"txnId":"129710-122-2079719-0-230502181123"},{"txnId":"9710-122-2079719-0-230502181123"}]
有效Jolt Spec
[ { "operation": "modify-overwrite-beta", "spec": { "delivery_status": { "*": { "parsedHeader": "=parseJson(@(1,x-apiheader))" } } } }, { "operation": "shift", "spec": { "delivery_status": { "*": { "parsedHeader": { "txnid": "[&2].txnId" } } } } }, { "operation": "remove", "spec": { "clientid": "" } } ]
步骤说明
- 第一步(modify-overwrite-beta):遍历
delivery_status下的每个元素,用parseJson函数把x-apiheader对应的JSON字符串解析成可操作的JSON对象,存入临时字段parsedHeader。 - 第二步(shift):提取
parsedHeader里的txnid字段,重命名为txnId,通过[&2]回溯到delivery_status的数组索引位置,保证输出数组的顺序和输入一致。 - 第三步(remove):清除输入中不需要的
clientid字段,确保输出结构符合要求。
内容的提问来源于stack exchange,提问作者Vinay
相关产品推荐
相关产品推荐

