Transformasi Go Kazaam mengembalikan hasil yang tidak dijangka

WBOY
Lepaskan: 2024-02-14 12:09:08
ke hadapan
1254 orang telah melayarinya

Go Kazaam 转换返回意外结果

editor php Youzi baru-baru ini mendapati bahawa alat penukaran baharu Go Kazaam mempunyai beberapa hasil yang tidak dijangka apabila pengguna menggunakannya. Alat ini pada asalnya direka untuk membantu pembangun menukar kod dengan cepat dan meningkatkan kecekapan pembangunan. Walau bagaimanapun, sesetengah pengguna melaporkan bahawa masalah yang tidak dijangka berlaku semasa penggunaan. Ini telah menarik perhatian pembangun dan pengguna Dalam artikel ini, kami akan membincangkan isu ini dan memberikan penyelesaian.

Kandungan soalan

Saya menggunakan modul kazaam untuk mentakrifkan penukaran json. https://github.com/qntfy/kazaam

Ini adalah peraturan saya:

"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"
                ]
            }
        }
    ]
Salin selepas log masuk

Mohon ke json ini:

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

Hasilnya begini:

{
    "Shift": "example1 value",
    "Concat": "null_null"
}
Salin selepas log masuk

Jadi operasi pertama berfungsi, operasi kedua mengembalikan null_null, dan operasi ketiga tidak muncul.

Penyelesaian

Peraturan ini akan digunakan secara berurutan. Keputusan yang dihasilkan oleh peraturan pertama akan berfungsi sebagai input kepada peraturan kedua, dan seterusnya, ia dirantai bersama. Jadi penukaran pertama anda menghasilkan objek:

{
  "Shift": "example1 value"
}
Salin selepas log masuk

Apabila perkara di atas digunakan sebagai input kepada tindakan kedua - anda akan mendapat nilai null kerana medan yang anda rujuk - tidak wujud.
Anda boleh cuba menukar peraturan pertama kepada:

{
            "operation": "shift",
            "spec": {
                "Shift": "instruction.context.example1",
                "instruction.context.example1": "instruction.context.example1",
                "instruction.context.example2": "instruction.context.example2"
            }
        },
Salin selepas log masuk

Lihat cara ia berfungsi.

Atas ialah kandungan terperinci Transformasi Go Kazaam mengembalikan hasil yang tidak dijangka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan