Thread overview
Json
Nov 17, 2017
Mafi
Nov 17, 2017
Jonathan M Davis
Nov 18, 2017
bauss
Nov 18, 2017
kerdemdemir
Nov 19, 2017
Mafi
Nov 19, 2017
bauss
November 17, 2017
What is the current best practice for parsing JSON in D? What library (on code.dlang.org) should I use?

I do not want to (de-)serialize structs. Instead I want a simple DOM-API.

Thank you very much :)
November 17, 2017
On Friday, November 17, 2017 19:02:12 Mafi via Digitalmars-d-learn wrote:
> What is the current best practice for parsing JSON in D? What library (on code.dlang.org) should I use?
>
> I do not want to (de-)serialize structs. Instead I want a simple
> DOM-API.
>
> Thank you very much :)

I've typically used http://code.dlang.org/packages/std_data_json which comes from vibe.d and was a candidate for replacing std.json - though it didn't complete the review process, and I'm not sure that Sonke is interested in going through the effort of actually getting it into Phobos at this point (if I understand correctly, there were too many disagreements over what the final result should look like than there really being much wrong with std_data_json). But overall, I've found that it works reasonably well - certainly, it's better than using std.json. I don't know if it's quite what you're looking for though.

Regardless, just searching on code.dlang.org gives plenty of hits for libraries to try out if std_data_json doesn't suit your fancy.

- Jonathan M Davis

November 18, 2017
On Friday, 17 November 2017 at 19:12:04 UTC, Jonathan M Davis wrote:
> On Friday, November 17, 2017 19:02:12 Mafi via Digitalmars-d-learn wrote:
>> [...]
>
> I've typically used http://code.dlang.org/packages/std_data_json which comes from vibe.d and was a candidate for replacing std.json - though it didn't complete the review process, and I'm not sure that Sonke is interested in going through the effort of actually getting it into Phobos at this point (if I understand correctly, there were too many disagreements over what the final result should look like than there really being much wrong with std_data_json). But overall, I've found that it works reasonably well - certainly, it's better than using std.json. I don't know if it's quite what you're looking for though.
>
> Regardless, just searching on code.dlang.org gives plenty of hits for libraries to try out if std_data_json doesn't suit your fancy.
>
> - Jonathan M Davis

Sadly it's not really updated and vibe.d's json module seems more stable, as it has had 60+ commits this year, while std_data_json hasn't been updated for over a year.

It will probably work fine in general, but I assume it'll have a few gotchas here and there, as it seems like even vibe.d's module has that.
November 18, 2017
I am using vibe.d's json(http://vibed.org/api/vibe.data.json/) module without a problem and really happy with it. There are also some examples(https://github.com/vibe-d/vibe.d/tree/master/examples/json). If you are using "dub" package manager it is also very easy to integrate vibe.d.
November 19, 2017
On Saturday, 18 November 2017 at 14:25:58 UTC, kerdemdemir wrote:
> I am using vibe.d's json(http://vibed.org/api/vibe.data.json/) module without a problem and really happy with it. There are also some examples(https://github.com/vibe-d/vibe.d/tree/master/examples/json). If you are using "dub" package manager it is also very easy to integrate vibe.d.

Well, this would pull the whole vibe.d into the executable, wouldn't it? I'll stick with stdx.data.json for now, which I have tried and it does work in my case. But I'll minimize the actual json-interaction code so I can switch out the lib at any time.

Thank you all! It's rather unfortunate that the (std lib) json situation is still not sorted out!
November 19, 2017
On Sunday, 19 November 2017 at 10:50:58 UTC, Mafi wrote:
> On Saturday, 18 November 2017 at 14:25:58 UTC, kerdemdemir wrote:
>> I am using vibe.d's json(http://vibed.org/api/vibe.data.json/) module without a problem and really happy with it. There are also some examples(https://github.com/vibe-d/vibe.d/tree/master/examples/json). If you are using "dub" package manager it is also very easy to integrate vibe.d.
>
> Well, this would pull the whole vibe.d into the executable, wouldn't it? I'll stick with stdx.data.json for now, which I have tried and it does work in my case. But I'll minimize the actual json-interaction code so I can switch out the lib at any time.
>
> Thank you all! It's rather unfortunate that the (std lib) json situation is still not sorted out!

Well you could hand pick the two sub packages.

https://github.com/vibe-d/vibe.d/tree/master/data
https://github.com/vibe-d/vibe.d/tree/master/utils (data depends on this)