Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » Elevate Web Builder Technical Support » Support Forums » Elevate Web Builder General » View Thread |
Messages 1 to 4 of 4 total |
Custom serialization of TCollection |
Mon, Jul 29 2019 11:12 AM | Permanent Link |
Mario Enríquez Open Consult | Hello everybody,
I've been successfully working the JSON serialize funtionality on TCollection/TCollectionItem classes. I've using it to exchange data with the backend service back and forward.. until now. There is a different and "improve" JSON library in the backend that is having trouble deserializing some "JSON" data that comes from EWB. The thing is that EWB TCollection serialize its content in the following format: { "Count": 2, Items:"[ {"id":1, "value":"test1"}, {"id":2, "value":"test2"} ]" } But the backend requieres the collections to be submited as if the were JSON Arrays, like this: {[{ "Count": 2, Items:"[ {"id":1, "value":"test1"}, {"id":2, "value":"test2"} ]" } ]} Any tips on how to achieve this? Regards, Mario |
Mon, Jul 29 2019 11:32 AM | Permanent Link |
Matthew Jones | Mario Enríquez wrote:
> {[{ "Count": 2, Items:"[ {"id":1, "value":"test1"}, {"id":2, "value":"test2"} ]" } ]} Neither of those are valid JSON as far as I can see. Item names are supposed to have quotes. At least, they always have when I've seen JSON! I'd say you could fiddle with the JSON writing code to add an extra set of brackets in, but I'd also question the Count value you have there. Is that actually a member of the object? Why is it needed? Anyway, this would be my suggestion, based on my usual serialising code: function TMyObject.GetJSON : String; var xWriter : TWriter; begin xWriter := TWriter.Create(dtfISO8601); try xWriter.Initialize; xWriter.BeginArray; // extra Save(xWriter); xWriter.EndArray; // extra Result := xWriter.Output; finally xWriter.Free; end; end; -- Matthew Jones |
Mon, Jul 29 2019 11:52 AM | Permanent Link |
Raul Team Elevate | On 7/29/2019 11:12 AM, Mario Enr�quez wrote:
> But the backend requieres the collections to be submited as if the were JSON Arrays, like this: > {[{ "Count": 2, Items:"[ {"id":1, "value":"test1"}, {"id":2, "value":"test2"} ]" } ]} > Is this what it really expects !? This is not a valid json. Raul |
Mon, Jul 29 2019 12:38 PM | Permanent Link |
Mario Enríquez Open Consult | Sorry folks, I just wrote that JSON string as an example. Both "libraries" are producing valid json.
It is just that EWB does a proper job of representig a TCollection, adding the Count and Items properties. But the backend is getting "confuse" about those properties as it is expecting an array representation, with just the values set enclosed in brackets. Sorry for the bad example, I'll try to better explain my problem in a moment. Thank you for taking the time to review my request. Regards, Mario |
This web page was last updated on Monday, October 14, 2024 at 05:15 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |