2016-05-16 25 views
6

Tôi đang sử dụng Delphi XE7 và tôi gặp sự cố khi chuyển đổi các đối tượng thành JSON. Tôi có thể nhận được một số đối tượng để trả lại những gì tôi nghĩ là thích hợp JSON, ví dụ như TTestObject:Chuyển đổi các đối tượng Delphi thành 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; 

Tuy nhiên, khi tôi cố gắng để có được JSON trở lại từ đối tượng của tôi mà có tài sản mà đối tượng là tốt, tôi nhận JSON với \ ký tự.

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

Điều gì gây ra điều này?

Trả lời

6

JSON hoàn toàn hợp lệ. Các đối tượng lồng nhau của bạn, khi được biểu diễn dưới dạng JSON, chứa các ký tự trích dẫn kép. Vì chúng được đặt trước như các dấu phân tách chuỗi, chúng cần phải được thoát. Do đó việc sử dụng ký tự dấu gạch chéo ngược làm ký tự thoát.

+1

cảm ơn vì lời giải thích tuyệt vời – John

Các vấn đề liên quan