php-Editor Youzi hat kürzlich entdeckt, dass ein neues Konvertierungstool, Go Kazaam, einige unerwartete Ergebnisse lieferte, wenn Benutzer es verwendeten. Dieses Tool wurde ursprünglich entwickelt, um Entwicklern dabei zu helfen, Code schnell zu konvertieren und die Entwicklungseffizienz zu verbessern. Allerdings berichteten einige Nutzer, dass bei der Nutzung unerwartete Probleme aufgetreten seien. Dies hat die Aufmerksamkeit von Entwicklern und Benutzern auf sich gezogen. In diesem Artikel werden wir dieses Problem diskutieren und Lösungen anbieten.
Ich verwende das Kazaam-Modul, um die JSON-Konvertierung zu definieren. https://github.com/qntfy/kazaam
Das sind meine Regeln:
"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" ] } } ]
Auf diesen JSON anwenden:
{ "instruction": { "context": { "example1": "example1 value", "example2": "example2 value", "example3": [ { "id": "example3_1_value" }, { "id": "example3_2_value" }, { "id": "example3_3_value" } ] } } }
Das Ergebnis sieht so aus:
{ "Shift": "example1 value", "Concat": "null_null" }
Die erste Operation funktioniert also, die zweite Operation gibt null_null zurück und die dritte Operation wird nicht angezeigt.
Diese Regeln werden nacheinander angewendet. Die von der ersten Regel erzeugten Ergebnisse dienen als Eingabe für die zweite Regel usw. Sie werden miteinander verkettet. Ihre erste Konvertierung führt also zu einem Objekt:
{ "Shift": "example1 value" }
Wenn das Obige als Eingabe für die zweite Aktion verwendet wird, erhalten Sie den Wert null
, da das Feld, auf das Sie verweisen, nicht existiert.
Sie können versuchen, die erste Regel wie folgt zu ändern:
{ "operation": "shift", "spec": { "Shift": "instruction.context.example1", "instruction.context.example1": "instruction.context.example1", "instruction.context.example2": "instruction.context.example2" } },
Sehen Sie, wie es funktioniert.
Das obige ist der detaillierte Inhalt vonDie Go Kazaam-Transformation liefert unerwartete Ergebnisse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!