Go Kazaam 转换返回意外结果

2024年 2月 14日 40.3k 0

go kazaam 转换返回意外结果

php小编柚子近日发现,一款新的转换工具Go Kazaam在用户使用过程中出现了一些意外结果。该工具原本被设计用于帮助开发者快速转换代码,提高开发效率。然而,一些用户反馈称,在使用过程中出现了一些意料之外的问题。这引起了开发者和用户的关注,我们将在本文中对该问题进行探讨,并给出解决方案。

问题内容

我使用 kazaam 模块来定义 json 转换。
https://github.com/qntfy/kazaam

这些是我的规则:

"rules": [
{
"operation": "shift",
"spec": {
"Shift": "instruction.context.example1"
}
},
{
"operation": "concat",
"spec": {
"sources": [
{
"path": "instruction.context.example1"
},
{
"path": "instruction.context.example2"
}
],
"targetPath": "Concat",
"delim": "_"
}
},
{
"operation": "coalesce",
"spec": {
"Coalesce": [
"instruction.context.example3[0].id"
]
}
}
]

登录后复制

应用于此 json:

{
"instruction": {
"context": {
"example1": "example1 value",
"example2": "example2 value",
"example3": [
{
"id": "example3_1_value"
},
{
"id": "example3_2_value"
},
{
"id": "example3_3_value"
}
]
}
}
}

登录后复制

结果是这样的:

{
"Shift": "example1 value",
"Concat": "null_null"
}

登录后复制

因此第一个操作有效,第二个操作返回 null_null,而第三个操作则不会出现。

解决方法

这些规则会依次应用。第一个规则产生的结果将作为第二个规则的输入,依此类推,它们是链接在一起的。因此,您首先转换会产生一个对象:

{
"Shift": "example1 value"
}

登录后复制

当上述内容作为第二个操作的输入时 - 您将获得 null 值,因为您所引用的字段 - 不存在。
您可以尝试将第一条规则更改为:

{
"operation": "shift",
"spec": {
"Shift": "instruction.context.example1",
"instruction.context.example1": "instruction.context.example1",
"instruction.context.example2": "instruction.context.example2"
}
},

登录后复制

看看它的效果。

以上就是Go Kazaam 转换返回意外结果的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论