D JSON (WAT?!)

Justin Whear via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jul 25 09:06:49 PDT 2014


On Thu, 24 Jul 2014 22:00:43 +0000, Pavel wrote:

> On Thursday, 24 July 2014 at 16:09:25 UTC, Justin Whear wrote:
>> On Thu, 24 Jul 2014 16:04:01 +0000, Pavel wrote:
>>> 
>>> Thanks to all you folks who explained "in" operator for me. My bad.
>>> Let's focus on the real problem, which is JSON wrapper class. Is it
>>> needed? Wouldn't it be better to get AA from parseJSON?
>>
>> The following are valid JSON:
>>
>> auto json1 = parseJSON(`1`);
>> auto json2 = parseJSON(`"foo"`);
>> auto json3 = parseJSON(`[1, 2, 3]`);
>>
>> None of these fit naturally into an JSONValue[string] return type.
> 
> Now we figured it out about JSON, but in that case:
> Why not just use std.variant.Variant construct instead of JSONValue?

While I suspect the reason is simply historical, it might be a type-
safety/information problem as well.  Variant can store values of 
essentially any type whereas JSON is strictly limited to a handful of 
simple types.  Going from a JSON string to Variant might not be 
troublesome, but going from Variant to JSON string almost certainly would.

That said, if you think it's worth it, I'd be up for reviewing a revamped 
std.json.


More information about the Digitalmars-d-learn mailing list