Thread overview
How to customize vibe.data.json
Mar 30, 2018
kerdemdemir
Mar 30, 2018
Seb
Mar 30, 2018
kerdemdemir
Mar 30, 2018
kerdemdemir
March 30, 2018
Hi,

In vibe's web page(http://vibed.org/api/vibe.data.json/serializeToJson) it is told that I should implement

Json toJson() const;
static T fromJson(Json src);

string toString() const;
static T fromString(string src);

I think I should implement those as member functions(I am not sure).

I have a struct like:

struct TradeData
{
	import std.uuid : UUID;
	import std.datetime : SysTime;

	UUID   sellOrderID;
	UUID   buyOrderID;
	SysTime buyOrderTime;
	SysTime sellOrderTime;	
}

What I want is automatically json conversion of UUID and SysTime classes by returning UUID.toString() and SysTime.toSimpleString() methods when serializeToJson() is being called. Since these are std classes I don't know how can I manipulate them.

Can you please tell me how should I use toJson(), fromJson() functions for customizing user defined objects.

Erdem

March 30, 2018
On Friday, 30 March 2018 at 16:47:52 UTC, kerdemdemir wrote:
> Hi,
>
> In vibe's web page(http://vibed.org/api/vibe.data.json/serializeToJson) it is told that I should implement
>
> [...]

I think you are looking for this - https://github.com/vibe-d/vibe.d/pull/2088

Feel free to ping the people there ;-)
March 30, 2018
On Friday, 30 March 2018 at 17:58:23 UTC, Seb wrote:
> On Friday, 30 March 2018 at 16:47:52 UTC, kerdemdemir wrote:
>> Hi,
>>
>> In vibe's web page(http://vibed.org/api/vibe.data.json/serializeToJson) it is told that I should implement
>>
>> [...]
>
> I think you are looking for this - https://github.com/vibe-d/vibe.d/pull/2088
>
> Feel free to ping the people there ;-)

Exactly :)
March 30, 2018
On Friday, 30 March 2018 at 17:58:23 UTC, Seb wrote:
> On Friday, 30 March 2018 at 16:47:52 UTC, kerdemdemir wrote:
>> Hi,
>>
>> In vibe's web page(http://vibed.org/api/vibe.data.json/serializeToJson) it is told that I should implement
>>
>> [...]
>
> I think you are looking for this - https://github.com/vibe-d/vibe.d/pull/2088
>
> Feel free to ping the people there ;-)

struct RESTTime {
    SysTime time;
    alias time this;
    static RESTTime fromString(string v) { return
    RESTTime(SysTime.fromSimpleString(v)); }
    string toString() const { return time.toSimpleString(); }
}

struct TradeData
{
	UUID   sellOrderID;
	UUID   buyOrderID;	
	
	SysTime buyOrderTime;
	SysTime sellOrderTime;	
}

void main() {
	
	TradeData t;
	Json jsonResult = t.serializeToJson();
	writeln(jsonResult.toString());
	
}

Unfortunately what is shown in the forum is not working with SysTime.
My program is being terminated in std.datetime.SysTime.toISOExtString() function by code -11.

I hope it does not sound like spoon feeding but do you know any solution for SysTime. I am working on it in parallel.

Erdem