2016-05-16 35 views
6

Używam Delphi XE7 i mam problemy z konwertowaniem obiektów do JSON. Mogę dostać jakiś przedmiot, aby oddać to, co myślę jest właściwa JSON, np TTestObject:Przekształcanie obiektów Delphi w 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; 

Jednak gdy próbuję dostać JSON powrotem z moich przedmiotów, które mają właściwości, które są obiekty jak dobrze, pobierz JSON ze znakami \.

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

Co to powoduje?

Odpowiedz

6

JSON jest całkowicie ważny. Twoje zagnieżdżone obiekty, reprezentowane jako JSON, zawierają znaki podwójnego cudzysłowu. Ponieważ są one zarezerwowane jako ograniczniki łańcuchów, muszą zostać usunięte. Stąd użycie znaku ukośnika odwrotnego jako znaku ucieczki.

+1

dziękuję za wspaniałe wyjaśnienie – John