首頁 > 後端開發 > Golang > 主體

Go Kazaam 轉換回傳意外結果

WBOY
發布: 2024-02-14 12:09:08
轉載
1254 人瀏覽過

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 轉換回傳意外結果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板