gpt4 book ai didi

java - 如何使用 jolt 替换某些属性的文本

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:48 32 4
gpt4 key购买 nike

我正在使用 jolt 来进行一些转换,我已经能够做到这一点,但在尝试替换 JSON 文件的某些属性中的某些文本时遇到了一些问题。

我尝试用/分割该值,然后将我需要的部分与附加文本连接起来,不幸的是,这不起作用。

输入 JSON

{
"components": {
"values": {
"value1": {
"$path": "1/2/3/bear"
},
"value2": {
"$path": "1/2/3/cat"
},
"value3": {
"$path": "1/2/3/lion"
}
}
}
}

我想使用它的最后一部分将“#/myvalue/”添加到每个 $path 值。

预期结果

{
"components": {
"values": {
"value1": {
"$path": "#/myvalue/bear"
},
"value2": {
"$path": "#/myvalue/cat"
},
"value3": {
"$path": "#/myvalue/lion"
}
}
}
}

我尝试了以下一种方法来获取该值,但它没有按预期工作。

 [
{
"operation": "shift",
"spec": {
"components": {
"values": {
"*": {
"\\$path": { //This key has de $ sign
"*/*/*/*": {
"$(0,4)": "\\$path" //I need to take the four part and assign that to the \\path value
}
}
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"components": {
"values": {
"*": {
"\\$path": "=concat('#/myvalue/', @(1,\\$path))"
}
}
}
}
}
]

最佳答案

您所需要的只是使用 jolt 提供的一些函数(如 split、last element、concat 等)来操作原始路径字符串

这个规范可以解决问题:

[
{
"operation": "modify-overwrite-beta",
"spec": {
"components": {
"values": {
"*": {
"temp": "=split('/',@(1,\\$path))",
"last_element": "=lastElement(@(1,temp))",
"\\$path": "=concat(#/myvalue/,@(1,last_element))"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"components": {
"values": {
"*": {
"\\$path": "components.values.&1.&"
}
}
}
}
}
]

关于java - 如何使用 jolt 替换某些属性的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57120259/

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