gpt4 book ai didi

json - Jolt Transformation - 小写所有键?

转载 作者:行者123 更新时间:2023-12-02 03:21:18 50 4
gpt4 key购买 nike

我有以下 JSON:-

{
"ROWNUM": "328938",
"SOURCE_NAME": "I2323",
"ID": "333333",
"FIRST_NAME": "A121221",
"KNOWN_AS": "G1223321",
"LAST_NAME": "sadsadsd",
"PLACE_OF_BIRTH": "Indsadsadsaddsaia",
"DATE_OF_BIRTH": "sadsaddsa",
"UPRN": "sadsadsad",
"POST_CODE": "asdsadsda",
"POST_TOWN": "GLASGOW",
"ESTIMATED_DOB": "N",
"LAST_UPDATED": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"aliases": [
{
"_id": {
"timestamp": 1550152767,
"machineIdentifier": 6505561,
"processIdentifier": 59,
"counter": 2775622,
"time": 1550152767000,
"timeSecond": 1550152767,
"date": 1550152767000
},
"ROWNUM": "328938",
"SOURCE_NAME": "I2323",
"ID": "333333",
"FIRST_NAME": "A121221",
"KNOWN_AS": "G1223321",
"LAST_NAME": "sadsadsd",
"PLACE_OF_BIRTH": "Indsadsadsaddsaia",
"DATE_OF_BIRTH": "sadsaddsa",
"UPRN": "sadsadsad",
"POST_CODE": "asdsadsda",
"POST_TOWN": "GLASGOW",
"ESTIMATED_DOB": "N",
"LAST_UPDATED": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"score": "0.9997580647468567"
},
{
"_id": {
"timestamp": 1550152767,
"machineIdentifier": 6505561,
"processIdentifier": 59,
"counter": 2775622,
"time": 1550152767000,
"timeSecond": 1550152767,
"date": 1550152767000
},
"ROWNUM": "328938",
"SOURCE_NAME": "I2323",
"ID": "333333",
"FIRST_NAME": "A121221",
"KNOWN_AS": "G1223321",
"LAST_NAME": "sadsadsd",
"PLACE_OF_BIRTH": "Whatever",
"DATE_OF_BIRTH": "sadsaddsa",
"UPRN": "sadsadsad",
"POST_CODE": "asdsadsda",
"POST_TOWN": "PAISLEY",
"ESTIMATED_DOB": "N",
"LAST_UPDATED": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"score": "0.9997580647468567"
}
]
}

是否有将每个键都小写的 jolt 规范,包括嵌套对象中的键? (在这种情况下是 aliases 下的内容)。

以下适用于顶级键但不适用于嵌套键:

[
{
// unwrap the keys and values into literal
// "key" : "A", "value" : "b"
"operation": "shift",
"spec": {
"*": {
"$": "&1.key",
"@": "&1.value"
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
// Now that the origional key
// is on the "right hand side"
// lowercase it
"key": "=toLower"
}
}
},
{
// pivot back, the now lowercased keys
"operation": "shift",
"spec": {
"*": {
"value": "@(1,key)"
}
}
}
]

谢谢!

最佳答案

这会产生扩展现有转换的预期结果:

[
{
// unwrap the keys and values into literal
// "key" : "A", "value" : "b"
"operation": "shift",
"spec": {
"*": {
"$": "&1.key",
"@": "&1.value"
},
//do the same for everything in aliases
//&3 = aliases
//&2 = array position
//&1 = position of kvp
"aliases": {
"*": {
"*": {
"$": "&3.&2.&1.key",
"@": "&3.&2.&1.value"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
// Now that the origional key
// is on the "right hand side"
// lowercase it
"key": "=toLower"
},
"aliases": {
"*": {
"*": {
// Now that the origional key
// is on the "right hand side"
// lowercase it
"key": "=toLower"
}
}
}
}
},
{
// pivot back, the now lowercased keys
"operation": "shift",
"spec": {
"*": {
"value": "@(1,key)"
},
"aliases": {
"*": {
"*": {
//&3 = aliases
//&2 = array postion
//@(1,key) values from "key"
"value": "&3.[&2].@(1,key)"
}
}
}
}
}
]

产生以下内容:

{
"rownum": "328938",
"source_name": "I2323",
"id": "333333",
"first_name": "A121221",
"known_as": "G1223321",
"last_name": "sadsadsd",
"place_of_birth": "Indsadsadsaddsaia",
"date_of_birth": "sadsaddsa",
"uprn": "sadsadsad",
"post_code": "asdsadsda",
"post_town": "GLASGOW",
"estimated_dob": "N",
"last_updated": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"aliases": [
{
"_id": {
"timestamp": 1550152767,
"machineIdentifier": 6505561,
"processIdentifier": 59,
"counter": 2775622,
"time": 1550152767000,
"timeSecond": 1550152767,
"date": 1550152767000
},
"rownum": "328938",
"source_name": "I2323",
"id": "333333",
"first_name": "A121221",
"known_as": "G1223321",
"last_name": "sadsadsd",
"place_of_birth": "Indsadsadsaddsaia",
"date_of_birth": "sadsaddsa",
"uprn": "sadsadsad",
"post_code": "asdsadsda",
"post_town": "GLASGOW",
"estimated_dob": "N",
"last_updated": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"score": "0.9997580647468567"
},
{
"_id": {
"timestamp": 1550152767,
"machineIdentifier": 6505561,
"processIdentifier": 59,
"counter": 2775622,
"time": 1550152767000,
"timeSecond": 1550152767,
"date": 1550152767000
},
"rownum": "328938",
"source_name": "I2323",
"id": "333333",
"first_name": "A121221",
"known_as": "G1223321",
"last_name": "sadsadsd",
"place_of_birth": "Whatever",
"date_of_birth": "sadsaddsa",
"uprn": "sadsadsad",
"post_code": "asdsadsda",
"post_town": "PAISLEY",
"estimated_dob": "N",
"last_updated": "2019-02-11T13:57:05.264Z",
"cluster_id": 3020,
"score": "0.9997580647468567"
}
]
}

关于json - Jolt Transformation - 小写所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54696540/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com