如何使用JOLT覆盖regions数组内的值?解决数组符号消失问题
JOLT修改数组元素并保留数组结构问题
问题场景
输入JSON:
{"targetings": {"geo": {"regions": [150]}}}
目标输出:
{"targetings": {"geo": {"regions": [1000]}}}
使用以下规则后,数值虽修改但数组结构丢失:
{"operation": "modify-overwrite-beta","spec": {"targetings": {"geo": {"regions": [150]}}}}
正确解决方案
方案1:直接替换整个数组
通过modify-overwrite-beta直接赋值为包含目标值的数组,确保结构保留:
[ { "operation": "modify-overwrite-beta", "spec": { "targetings": { "geo": { "regions": [1000] } } } } ]
方案2:修改数组指定索引元素
如果需要精准修改数组内某位置的元素(如第一个元素,索引为0),可通过索引定位:
[ { "operation": "modify-overwrite-beta", "spec": { "targetings": { "geo": { "regions": { "0": 1000 } } } } } ]
原规则失效原因
你之前的规则存在两个问题:一是误将目标值写成了原数值150,二是未明确保持数组结构的写法。上述两种方案通过明确数组赋值或索引修改,均可避免数组结构丢失的问题。
内容的提问来源于stack exchange,提问作者fujidaon
相关产品推荐
相关产品推荐

