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.
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" ] } } ]
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" } ] } } }
Hasilnya begini:
{ "Shift": "example1 value", "Concat": "null_null" }
Jadi operasi pertama berfungsi, operasi kedua mengembalikan null_null, dan operasi ketiga tidak muncul.
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" }
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" } },
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!