我有一个JSON输入:
{
"levelOne": [
{
"leveltwo": {
"levelThree": [
{
"type": "typeOne",
"leveltwo": {
"Id": "101000094794",
"Id2": "101000013207"
}
},
{
"type": "typeTwo",
"leveltwo": {
"Id": "101000013207",
"Id2": "101000013207"
}
}
]
}
}
]
}
是否有一个jolt规范,可以将每个键都小写,包括嵌套对象中的键?(在这种情况下是leveltwo下的键)
{
"levelone": [
{
"leveltwo": {
"levelThree": [
{
"id": "101000094794",
"id2": "101000013207",
"type": "typeOne"
},
{
"id": "101000013207",
"id2": "101000013207",
"type": "typeTwo"
}
]
}
}
]
}
目前,我使用以下规范(jolt模板):`
[
{
"operation": "shift",
"spec": {
"levelOne": {
"*": {
"leveltwo": {
"id": "&3[&2].leveltwo.id",
"levelThree": {
"*": {
"leveltwo": {
"Id": "&6[&5].leveltwo.&3[&2].id",
"Id2": "&6[&5].leveltwo.&3[&2].id2"
},
"type": "&5[&4].leveltwo.&2[&1].type"
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"$": "&1.key",
"@": "&1.value"
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"levelOne": {
"key": "=toLower"
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"value": "@(1,key)"
}
}
}
]
预期结果(关键字应为较低级别Three、typeOne、typeTwo):
{
"levelone": [
{
"leveltwo": {
"levelthree": [
{
"id": "101000094794",
"id2": "101000013207",
"type": "typeone"
},
{
"id": "101000013207",
"id2": "101000013207",
"type": "typetwo"
}
]
}
}
]
}
谢谢!
3条答案
按热度按时间xdyibdwo1#
您可以对每个需要大小写转换的对象键(本例中为
levelOne
和levelThree
)重复应用连续的shift
-modify
-shift
三元组,例如6rqinv9w2#
嗨Priyanka这个规范将解决你的问题。你可以在modify-overwrite-beta操作中使用=toLower case函数。
m528fe3b3#
你可以确定所有的东西都是较低的震动规格。你可以修改每个
location
,keys
,或values
在modify
步骤。请运行每个规范,看看发生了什么。
**注意:**如果您想防止降低您的值,您可以将
modify
中的这一行keys|values|location
更改为keys|location
。