octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help in JSON encode/decode project


From: Andrew Janke
Subject: Re: Help in JSON encode/decode project
Date: Mon, 9 Mar 2020 02:14:36 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.5.0


On 3/9/20 2:01 AM, Kai Torben Ohlhus wrote:
> On 3/9/20 2:56 PM, Andrew Janke wrote:
>>
>> I took a look in to RapidJSON and agree that it looks like a better
>> library for this than jsoncpp, both for performance, and code quality &
>> documentation.
> 
> 
> Now I am curious how did you get convinced of this change?  Did you run
> some large scale tests yourself?
> 
> Best,
> Kai
> 

No, I don't have time for that. :)

I took a look at this benchmark [1] (which happens to be by the author
of RapidJSON) and thought it was pretty convincing; the code is put
together well, and I see it referenced in a lot of places. It shows a
pretty stark performance difference between jsoncpp and RapidJSON. And
the fact that the library author actually made and ran benchmarks made
me think well of RapidJSON. I saw a couple other benchmarks floating
around in which RapidJSON also beat out jsoncpp.

Then I took a look at the RapidJSON library itself, reading through its
documentation and part of its codebase, and reviewing its GitHub
activity. This struck me as a high quality library. I like its API a bit
better than jsoncpp's, and it's much better documented. The author
clearly also *gets* Unicode encoding and the subtleties of the various
definitions and "standards" for JSON. So I decided I was more
comfortable using RapidJSON than jsoncpp, even if performance weren't a
factor.

Since RapidJSON is a header-only library, it was easy to vendor it into
the JsonStuff project and make the transition without introducing any
external dependencies, so I went ahead and did it.

Cheers,
Andrew

[1] https://github.com/miloyip/nativejson-benchmark



reply via email to

[Prev in Thread] Current Thread [Next in Thread]