2016-05-16 6 views
6

Ich verwende Delphi XE7 und ich habe Probleme beim Konvertieren von Objekten in JSON. Ich kann ein Objekt erhalten, zurück zu geben, was ich denke richtige JSON, zB TTestObject:Konvertieren von Delphi-Objekten in JSON

{"Test":{"Field":"TestField","Operation":"TestOperation","values": 
["Value1","Value2","Value3","Value4"]}} 
JOBJ:= TJSONObject.Create; 
JOBJ.AddPair('Test', ATestObject.JSONObj); 
memo1.Lines.Add(JObj.ToJSON); 
JOBJ.Free; 

aber wenn ich versuche, JSON, um wieder aus meinen Objekten, die Eigenschaften haben, die Objekte sind als gut, ich Erhalte JSON mit \ Zeichen.

{"Exceptions":{"TestObject1":" 
{\"Mode\":\"0\",\"Value\":\"100.50\",\"Days\":\"10\"}","TestObject2":" 
{\"Mode\":\"0\",\"Days\":\"0\",\"UnitsSold\":\" 
... 

Was verursacht das?

Antwort

6

Der JSON ist vollkommen gültig. Ihre verschachtelten Objekte enthalten, wenn sie als JSON dargestellt werden, doppelte Anführungszeichen. Da sie als String-Trennzeichen reserviert sind, müssen sie maskiert werden. Daher die Verwendung des Backslash-Zeichens als Escape-Zeichen.

+1

danke für die großartige Erklärung – John