De-serialize JSON "like" strings (für Custom Products Plugin

Hallo zusammen, ich verwende die Shopware API um Bestellungen zu holen und weiter zu verarbeiten. Das passiert in einer C# (mit package Json.net von Newtonsoft) Applikation. Nach einiger Mühe klappt das (fast) bestens. AUSSER… ich verwende das Shopware CUSTOM PRODUCTS plugin. Die Vom Kunden eingegebene Artikeloptionen kommen über die API wie folgt rein (Einfaches Beispiel mit nur einem einfachen Text): "swagCustomizing":"a:2:{s:7:\"groupId\";i:1;s:6:\"values\";a:1:{i:1;s:9:\"Testkauf1\";}}" Hier hatte ich bei dem Artikel den Text “Testkauf1” angegeben. Diesen string kann ich mit Json.net nicht de-serialisieren. Er stört sich an den Semikolons (was - glaube ich - nicht verwunderlich ist). Hat jemand eine Idee, wie ich das (außer händisch) parsen kann? Ich würde gerne auf das händische parsen verzichten (Sonderzeichen etc…) Schon mal vielen Dank vorab Uwe ERGÄNZUNG: Irgendwie machen die zurückgelieferten Daten nich so recht Sinn. Es ist naheliegend, dass: “i” den Index bedeutet => OK 1-4 “s” die Länge der Texte (size) bedeutet, diese Info könnte man zum parsen verwenden (wenn es denn schon sein muss). Die Längenangaben stimmen bei einfachen Texten auch, aber wenn " \ ins Spiel kommen werden die Längenangaben unverständlich (s.Beispiel unten) Kann sich jemand darauf einen Reim machen? Hallo Shopware, falls ihr mitlest, könnt ihr mir einen Tip geben? BEISPIEL: Bei Bestellung 4 Texte eingegeben: I,I.I-I;I:I_I/I";-.-,-;U’I"" =)(Y>\khds ÄäÖöÜü///\\890jw~l’m# 1!2"3§$5%6&7/8(9)0=ßv?g´* von API geliefert [code]"swagCustomizing":"a:2:{s:7:\"groupId\";i:1;s:6:\"values\";a:4:{i:1;s:33:\"I,I.I-I;I:I_I/I\";-.-,-;U'I\\\"\"\";i:2;s:12:\"=)(Y\>\\khds\";i:3;s:28:\"ÄäÖöÜü///\\\\\\890jw~l'm#\";i:4;s:29:\"1!2\"3§$5%6&7/8(9)0=ßv?g´*";}}"[/code] Aufgeschlüsselt: I,I.I-I;I:I\_I/I";-.-,-;U'I\"" i:1;s:33:\"I,I.I-I;I:I\_I/I\";-.-,-;U'I\\\"\"\"; =)(Y\>\khds i:2;s:12:\"=)(Y\>\\khds\"; ÄäÖöÜü///\\\890jw~l'm# i:3;s:28:\"ÄäÖöÜü///\\\\\\890jw~l'm#\"; 1!2"3§$5%6&7/8(9)0=ßv?`g´* i:4;s:29:\"1!2\"3§$5%6&7/8(9)0=ßv?`g´\*\";}}"

Die “JSON-like”-Strings sind die Serialisierung von PHP. Eventuell gibt es schon eine fertige Funktion in C# um diese zu deserialisieren!? Ansonsten hilft Dir vielleicht die Beschreibung unter http://www.php.net/manual/de/function.serialize.php das ein oder andere Missverständnis aus der Welt zu schaffen (z.B. der erste Kommentar).

1 Like