beta

C++ JSON parser

User Ratings

★★★★★
★★★★
★★★
★★
59
1
1
0
8
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
Write a Review

User Reviews

  • abax0
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Segfaults at __gnu_cxx::__exchange_and_add when trying to create and destroy a Reader object. Tried with both ubuntu repositories version and self-compiled version. Using gcc 4.8

    Posted 04/28/2014
  • lkwjeoifj
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Documentation / setting up the project is a nightmare! Readmes are all outdated.

    Posted 02/01/2014
  • mackdiddy
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    We use JSON in our product absolutely everywhere. And some very complicated JSON as well. Using this library introduced heap corruption into our product. It was reproducible, but under very odd circumstances. Writing our own JSON reader magically made all of our heap corruption go away. Do not use this for anything commercial-grade. It would probably work OK for the most part for some utility projects or something simple.

    Posted 01/13/2014
  • naser78
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Makes handling json in c++ effortless. Good work.Nice project! You did a great job. Thank you!

    Posted 02/12/2013
  • oid-3771968
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    It's really good apart from the lack of UNICODE support, I'd have to change everything to TCHAR and std::wstring :(

    Posted 03/14/2012
  • reinhard82
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    It corrupts heap memory! Developers don't correct even critical bugs for a months (see bug list).

    Posted 02/09/2011
  • oid-2951014
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall Json::StyledWriter::write(class Json::Value const &)" (?write@StyledWriter@Json@@UAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABVValue@2@@Z) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Json::StyledWriter::StyledWriter(void)" (??0StyledWriter@Json@@QAE@XZ) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Json::Value::~Value(void)" (??1Value@Json@@QAE@XZ) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class Json::Value & __thiscall Json::Value::operator=(class Json::Value const &)" (??4Value@Json@@QAEAAV01@ABV01@@Z) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class Json::Value & __thiscall Json::Value::operator[](char const *)" (??AValue@Json@@QAEAAV01@PBD@Z) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Json::Value::Value(char const *)" (??0Value@Json@@QAE@PBD@Z) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Json::Value::Value(enum Json::ValueType)" (??0Value@Json@@QAE@W4ValueType@1@@Z) в функции "private: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const __thiscall drmsrv::on_request(struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::incoming_things const &,struct dlib::server_http_1<class dlib::server_iostream_1<class dlib::server_kernel_c<class dlib::server_kernel_1<class dlib::set_kernel_1<class dlib::connection *,class dlib::binary_search_tree_kernel_1<class dlib::connection *,char,class dlib::memory_manager_kernel_1<char,0>,struct std::less<class dlib::connection *> >,class dlib::memory_manager_kernel_1<char,0> > > >,class dlib::sockstreambuf_kernel_2,class dlib::map_kernel_1<unsigned __int64,class dlib::connection *,class dlib::binary_search_tree_kernel_2<unsigned __int64,class dlib::connection *,class dlib::memory_manager_kernel_2<char,10>,struct std::less<unsigned __int64> >,class dlib::memory_manager_kernel_2<char,10> > > >::outgoing_things &)" (?on_request@drmsrv@@EAE?BV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABUincoming_things@?$server_http_1@V?$server_iostream_1@V?$server_kernel_c@V?$server_kernel_1@V?$set_kernel_1@PAVconnection@dlib@@V?$binary_search_tree_kernel_1@PAVconnection@dlib@@DV?$memory_manager_kernel_1@D$0A@@2@U?$less@PAVconnection@dlib@@@std@@@2@V?$memory_manager_kernel_1@D$0A@@2@@dlib@@@dlib@@@dlib@@Vsockstreambuf_kernel_2@2@V?$map_kernel_1@_KPAVconnection@dlib@@V?$binary_search_tree_kernel_2@_KPAVconnection@dlib@@V?$memory_manager_kernel_2@D$09@2@U?$less@_K@std@@@2@V?$memory_manager_kernel_2@D$09@2@@2@@dlib@@@dlib@@AAUoutgoing_things@56@@Z) 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: virtual __thiscall Json::Writer::~Writer(void)" (??1Writer@Json@@UAE@XZ) в функции "public: virtual __thiscall Json::StyledWriter::~StyledWriter(void)" (??1StyledWriter@Json@@UAE@XZ)

    Posted 09/18/2010
  • hypernewbie
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    absolutely horrendous. making a Json::Value global would result in a pure virtual function call crash upon exit. If you try asInt() when the value is a string, you'd get a huge assertion fail. Random access violations everywhere.

    Posted 06/16/2010