jsoncpp和rapidjson哪个好用?
生活随笔
收集整理的這篇文章主要介紹了
jsoncpp和rapidjson哪个好用?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:Milo Yip
鏈接:http://www.zhihu.com/question/23654513/answer/46157616
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
身為 RapidJSON 作者,剛剛做完 28 個 C/C++ JSON 庫(包括題目中的兩個)的評測 miloyip/nativejson-benchmark,回來回答這個問題。
標準符合程度(越高越好):
<img src="https://pic3.zhimg.com/0824ee0557ff57fbcdbc98b82477f30a_b.jpg" data-rawwidth="900" data-rawheight="810" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic3.zhimg.com/0824ee0557ff57fbcdbc98b82477f30a_r.jpg">這個測試分開4個部分:JSON正確性檢測(使用這個測試分開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的耗時(越低越好):
<img src="https://pic2.zhimg.com/d995b8cfc3249d112fa9142e3d5e7101_b.jpg" data-rawwidth="900" data-rawheight="833" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic2.zhimg.com/d995b8cfc3249d112fa9142e3d5e7101_r.jpg"><img src="https://pic4.zhimg.com/70e06ed8e2625bc4d4ba4aec1fda1973_b.jpg" data-rawwidth="900" data-rawheight="765" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic4.zhimg.com/70e06ed8e2625bc4d4ba4aec1fda1973_r.jpg">可見RapidJSON比JsonCpp在解析上快了一個數量級,而生成上也近一個數量級了??梢奟apidJSON比JsonCpp在解析上快了一個數量級,而生成上也近一個數量級了。
解析至DOM后的內存用量(越低越好):
<img src="https://pic4.zhimg.com/9b0bdc335161513ab69b7b43de24c6cb_b.jpg" data-rawwidth="900" data-rawheight="833" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic4.zhimg.com/9b0bdc335161513ab69b7b43de24c6cb_r.jpg">RapidJSON(除了insitu parsing)的內存用量只是JsonCpp的1/4。RapidJSON(除了insitu parsing)的內存用量只是JsonCpp的1/4。
其他方面,例如功能、文檔、友好性等,就不在此逐一對比了。
RapidJSON也有一些缺點,例如有些API的設計比較奇怪,可能較難使用。我們會嘗試加入一些功能,使不太注重性能的部分能更容易使用。
如果讀者仍然想使用 JsonCpp,也可以參考這個評測,幫助改進它。這也是我做此評測的初衷,在開源代碼中互相學習,持續改進。 編輯于 2015-04-2834 條評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 收起 0贊同 反對,不會顯示你的姓名 朱元 rapidjson 大量借鑒了rapidxml的一些特點,雖然不是一個作者。于是rapidxml是xml解析庫速度最高的,rapidjson也基本上說的上是json解析中最快的了。 rapidjson 大量借鑒了rapidxml的一些特點,雖然不是一個作者。
于是rapidxml是xml解析庫速度最高的,rapidjson也基本上說的上是json解析中最快的了。 發布于 2015-04-28添加評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 0贊同 反對,不會顯示你的姓名 汪周洋 rapidjson接口設計的不好,不好用,雖然只需要包含頭文件,另外主要也是用了其他內建json類型的語言給慣壞了,jsoncpp要編譯成庫就更加不方便了 rapidjson接口設計的不好,不好用,雖然只需要包含頭文件,另外主要也是用了其他內建json類型的語言給慣壞了,jsoncpp要編譯成庫就更加不方便了 編輯于 2015-12-032 條評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 6贊同 反對,不會顯示你的姓名 周剛,凡是過去 皆為序章 李宇、知乎用戶、戰龍等人贊同 沒人回答,我來回答一下吧,之前都用jsoncpp,自從發現rapidjson后,一直讓團隊用這個易用性:rapidjson是全頭文件包含的,jsoncpp需要你內置編譯或編譯成庫;但rapidjson的一些接口不全,只提供了一層一層的這種解析方式,不能將某一層一次讀出來,實際用…顯示全部 沒人回答,我來回答一下吧,之前都用jsoncpp,自從發現rapidjson后,一直讓團隊用這個
易用性:rapidjson是全頭文件包含的,jsoncpp需要你內置編譯或編譯成庫;但rapidjson的一些接口不全,只提供了一層一層的這種解析方式,不能將某一層一次讀出來,實際用的時候,要簡單封裝一下,不然代碼量會很大;
性能:rapidjson的性能是現在所有的c++ json解析庫里面最高的,沒有之一;
容錯性:rapidjson只支持標準的 json 格式,很多人以為這個是缺點,我覺得這個是優點,大家都按照標準做,這是成本最低的;
rapidjson之前是托管在Googe Code上的,現在已遷移到GitHub,地址:miloyip/rapidjson · GitHub
另外具體的性能測試,可以參考這個地址:mloskot/json_benchmark · GitHub
這是對流行C++ Json庫的一個總結:【總結】各種 JSON 解析庫的功能簡介 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
鏈接:http://www.zhihu.com/question/23654513/answer/46157616
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
身為 RapidJSON 作者,剛剛做完 28 個 C/C++ JSON 庫(包括題目中的兩個)的評測 miloyip/nativejson-benchmark,回來回答這個問題。
標準符合程度(越高越好):
<img src="https://pic3.zhimg.com/0824ee0557ff57fbcdbc98b82477f30a_b.jpg" data-rawwidth="900" data-rawheight="810" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic3.zhimg.com/0824ee0557ff57fbcdbc98b82477f30a_r.jpg">這個測試分開4個部分:JSON正確性檢測(使用這個測試分開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的耗時(越低越好):
<img src="https://pic2.zhimg.com/d995b8cfc3249d112fa9142e3d5e7101_b.jpg" data-rawwidth="900" data-rawheight="833" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic2.zhimg.com/d995b8cfc3249d112fa9142e3d5e7101_r.jpg"><img src="https://pic4.zhimg.com/70e06ed8e2625bc4d4ba4aec1fda1973_b.jpg" data-rawwidth="900" data-rawheight="765" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic4.zhimg.com/70e06ed8e2625bc4d4ba4aec1fda1973_r.jpg">可見RapidJSON比JsonCpp在解析上快了一個數量級,而生成上也近一個數量級了??梢奟apidJSON比JsonCpp在解析上快了一個數量級,而生成上也近一個數量級了。
解析至DOM后的內存用量(越低越好):
<img src="https://pic4.zhimg.com/9b0bdc335161513ab69b7b43de24c6cb_b.jpg" data-rawwidth="900" data-rawheight="833" class="origin_image zh-lightbox-thumb" width="900" data-original="https://pic4.zhimg.com/9b0bdc335161513ab69b7b43de24c6cb_r.jpg">RapidJSON(除了insitu parsing)的內存用量只是JsonCpp的1/4。RapidJSON(除了insitu parsing)的內存用量只是JsonCpp的1/4。
其他方面,例如功能、文檔、友好性等,就不在此逐一對比了。
RapidJSON也有一些缺點,例如有些API的設計比較奇怪,可能較難使用。我們會嘗試加入一些功能,使不太注重性能的部分能更容易使用。
如果讀者仍然想使用 JsonCpp,也可以參考這個評測,幫助改進它。這也是我做此評測的初衷,在開源代碼中互相學習,持續改進。 編輯于 2015-04-2834 條評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 收起 0贊同 反對,不會顯示你的姓名 朱元 rapidjson 大量借鑒了rapidxml的一些特點,雖然不是一個作者。于是rapidxml是xml解析庫速度最高的,rapidjson也基本上說的上是json解析中最快的了。 rapidjson 大量借鑒了rapidxml的一些特點,雖然不是一個作者。
于是rapidxml是xml解析庫速度最高的,rapidjson也基本上說的上是json解析中最快的了。 發布于 2015-04-28添加評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 0贊同 反對,不會顯示你的姓名 汪周洋 rapidjson接口設計的不好,不好用,雖然只需要包含頭文件,另外主要也是用了其他內建json類型的語言給慣壞了,jsoncpp要編譯成庫就更加不方便了 rapidjson接口設計的不好,不好用,雖然只需要包含頭文件,另外主要也是用了其他內建json類型的語言給慣壞了,jsoncpp要編譯成庫就更加不方便了 編輯于 2015-12-032 條評論感謝 分享 收藏?沒有幫助?舉報?作者保留權利 6贊同 反對,不會顯示你的姓名 周剛,凡是過去 皆為序章 李宇、知乎用戶、戰龍等人贊同 沒人回答,我來回答一下吧,之前都用jsoncpp,自從發現rapidjson后,一直讓團隊用這個易用性:rapidjson是全頭文件包含的,jsoncpp需要你內置編譯或編譯成庫;但rapidjson的一些接口不全,只提供了一層一層的這種解析方式,不能將某一層一次讀出來,實際用…顯示全部 沒人回答,我來回答一下吧,之前都用jsoncpp,自從發現rapidjson后,一直讓團隊用這個
易用性:rapidjson是全頭文件包含的,jsoncpp需要你內置編譯或編譯成庫;但rapidjson的一些接口不全,只提供了一層一層的這種解析方式,不能將某一層一次讀出來,實際用的時候,要簡單封裝一下,不然代碼量會很大;
性能:rapidjson的性能是現在所有的c++ json解析庫里面最高的,沒有之一;
容錯性:rapidjson只支持標準的 json 格式,很多人以為這個是缺點,我覺得這個是優點,大家都按照標準做,這是成本最低的;
rapidjson之前是托管在Googe Code上的,現在已遷移到GitHub,地址:miloyip/rapidjson · GitHub
另外具體的性能測試,可以參考這個地址:mloskot/json_benchmark · GitHub
這是對流行C++ Json庫的一個總結:【總結】各種 JSON 解析庫的功能簡介 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
總結
以上是生活随笔為你收集整理的jsoncpp和rapidjson哪个好用?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个python发包的脚本
- 下一篇: rapidjson官方教程