jsoncpp和rapidjson哪个好用?

jsoncpp和rapidjson哪个好用?,第1张

程序员的秘诀是:编程、编程、再编程。

简单性

真的对这个问题一窍不通,但是专人说:Rapidjson是全部都在第一个总文件里,jsoncpp要求您构建或编译一个库;但rapidjson的一些接口不全,只提供了一层一层的这种解析方式,不能将某一层一次读出来,实际用的时候,要简单封装一下,不然代码量会很大。

功能

在稍微了解了之后,我觉得其实也没有那么难理解。而且专人还说,在所有c++ json解析库中,rapidjson的性能是最高的,而不是其中之一rapidjson只支持标准的 json 格式,很多人以为这个是缺点,我觉得这个是优点,大家都按照标准做,这是成本最低的。

不足之处

我是文科生,一向对数字类或者理工类的东西不太感兴趣,不过这个问题让我了解了,VS2013不支持VS2013,与VS2013不兼容,但作为一个Win7统治桌面 *** 作系统的时代,VS2013一定会是一个主流的编译器,这一点说不过去;代码上,Morden C++的大量使用,对于一般的程序员来说,太不友好了;性能,好吧,他的确比rapidjson慢了5~10倍。

总结

其实这种类似程序的东西我真的毫无涉猎,不过以后可以尝试看看。这个库使用了大量c++ 11标准元素,并且库的设计也符合一些STL标准,可配置性比较强;单文件方式,引用也比较方便;使用上,也有其独到的地方,更接近JSON的本质;此外性能上还是不错的,只是比rapidjson差,比libjson,jsoncpp之流还是强了不少

身为 RapidJSON 作者,刚刚做完 28 个 C/C++ JSON 库(包括题目中的两个)的评测 miloyip/nativejson-benchmark,回来回答这个问题。

标准符合程度(越高越好):

这个测试分开4个部分:JSON正确性检测(使用JSON_checker测试集)、解析double的准确性、解析string的正确性、roundtrip测试。

JsonCpp 得88分,算是比较好的了。如果仔细看每个部分(https://rawgit.com/miloyip/nativejson-benchmark/master/sample/conformance.html),就是JSON正确性和roundtrip上有几个问题。而RapidJSON在JSON正确性、string和roundtrip上都是满分,开启了 full precision 选项的话,解析double也是满分。

解析和生成JSON的耗时(越低越好):

可见RapidJSON比JsonCpp在解析上快了一个数量级,而生成上也近一个数量级了。

解析至DOM后的内存用量(越低越好):

RapidJSON(除了insitu parsing)的内存用量只是JsonCpp的1/4。

其他方面,例如功能、文档、友好性等,就不在此逐一对比了。

RapidJSON也有一些缺点,例如有些API的设计比较奇怪,可能较难使用。我们会尝试加入一些功能,使不太注重性能的部分能更容易使用。

如果读者仍然想使用 JsonCpp,也可以参考这个评测,帮助改进它。这也是我做此评测的初衷,在开源代码中互相学习,持续改进。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7905640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存