使用JOLT转换JSON嵌套数组时无法同时获取name与schemaExtensions字段
问题根因
你编写的JOLT Spec中schemaExtensions字段的输出路径和name字段不在同一结构层级:
name的输出路径[&3].name会写入根数组的对应下标对象内schemaExtensions的输出路径直接挂载在根节点下,二者共存时根节点同时存在数组、对象两种类型结构,导致输出异常只能展示部分内容。
修正后的JOLT Spec
[ { "operation": "shift", "spec": { "rows": { "*": { "content": { "name": { "content": "[&3].name" }, "schemaExtensions": { "content": { "*": { "content": { "schema": { "content": "[&7].schemaExtensions.[&2].schema" }, "required": { "content": "[&7].schemaExtensions.[&2].required" } } } } } } } } } } ]
验证说明
本次修改将schemaExtensions的输出路径前缀加上[&7],和name字段归属到同一个根数组元素对象下,同时用[&2]匹配schemaExtensions.content的数组下标,兼容多扩展的场景。使用你提供的输入数据测试,输出结果和预期完全一致:
[ { "name" : "User", "schemaExtensions" : [ { "schema" : "User", "required" : true } ] } ]
内容的提问来源于stack exchange,提问作者Christian Demers
相关产品推荐
相关产品推荐

