当前位置:网站首页>jolt语法
jolt语法
2022-08-03 06:34:00 【bobo洁厕灵】
1.jolt语法规则说明
jolt是用来在json格式数据之间做数据转换处理的规则描述语言。它的主要作用是将一种json格式转化为另一种json格式。其原理是将输入json对象按层级结构遍历,匹配每个层级的属性,将匹配到的属性名或值转换成目标json对象指定层级下的属性。
Jolt自身也使用json格式来描述规则定义。通常使用一个json数组来表示多个转换处理步骤,每个转换步骤用一个json对象来表示。Jolt语言格式如下:
每个json格式表示的转换步骤都包含上面①operation和②spec两个属性描述
①operation表示转换场景,下文介绍主要转换场景及使用方法。
(1)shift: 主要作用是拷贝,将输入json的某个结构拷贝到目标json。转换过程主要做属性名称映射,层级结构转换等。
(2)default:主要作用是设置默认值,如果输入json某个value不存在,则使用默认值补齐
(3)remove: 主要作用是删除,可以删除输入json结构的某个结构
(4)sort: 对key值进行排序(暂无应用场景,无需关注)
②spec表示转换规则,转换规则在不同转换场景中有不同的应用,主要用于数据属性名变更,层级结构转换,设置属性默认值,删除某个属性值等。
理解下图:匹配,输入
shift转换的通配符
通配符的匹配优先级 是在精确 匹配之后的
1."*"
仅可以匹配输入json的key,不能匹配value。使用 “*”通配符的时候,需要保证所匹配的key在输入json中处于同一层级
* 是匹配输出数据一个节点下的所有子节点,匹配当前路径下的所有key
2."&"
& 的深入理解:&其实是取 *(或其他) 匹配到的节点的 key
rating-*匹配到rating-quality,rating-color,在Spec中,将匹配到的子节点()输出给SecondaryRatings.&(0,1).value
&(0,1)
匹配到第一个通配符*匹配到的key值
&(1,0):
“$”符
和"&"类似
$符所在层级的上一级匹配的所有key的值作为输出
但是使用在匹配数据中(表示式左边),取json数据的key作为值输入到目标表达式中
"@"符
"@"和"$"用法类似,不过"@"取得是指定位置的value作为目标Json的value值,而“$”取的是指定位置的key作为目标Json的value值。
@符匹配到所在层级上一级的所有值作为输出
"#"符
"|"符
输入json
{
"sex":"male"
}
default转换
default转换比较简单,主要作用是预先设置一些默认值。只有当输入json中不存在该属性值时,才会使用默认值进行补齐。如果输入json中已存在某个属性,则默认值设置不生效
remove转换
remove也很简单,作用是删除input中的某些值。如果需要删除input中的个别字段,而其他字段保持不变,建议使用该转换
modify转换
modify转换用于修改输入json的属性值,可选的operation值有:
1)、"modify-default-beta":用于向输出json添加输入json中不存在的属性并给属性赋值,若输入json中属性已存在,则不执行修改操作
2)、” modify-overwrite-beta”:用于覆盖修改输入json中的属性值,若输入json中属性不存在,则添加;若输入json中属性已存在,则修改该值
边栏推荐
猜你喜欢
随机推荐
qt学习之旅--MinGW编译FFmpeg(32bit)
unity 摄像机旋转拖拽缩放场景
Getting Started with Chrome Plugin Development
(十五)51单片机——呼吸灯与直流电机调速(PWM)
我国有关信息方面的法律法规
多线程打印ABC(继承+进阶)
Nacos与Eureka的区别
boot - SSE
docker-compose部署mysql
924. 尽量减少恶意软件的传播 前缀和
spark中Repartition 和 Coalesce 区别
JS 原型原型链
MySQL忘记密码怎么办
关于NOI 2022的报到通知
1066 Root of AVL Tree // AVL平衡二叉搜索树模板
一篇文章教你写扫雷(c语言基础版)
【着色器实现Glow可控局部发光效果_Shader效果第十三篇】
华为设备配置BFD多跳检测
商业智能BI业务分析思维:供应链分析 – 如何控制牛鞭效应(二)
亿流量大考(1):日增上亿数据,把MySQL直接搞宕机了...