json-cpp
betaDescription
jsoncpp is an implementation of a JSON (http://json.org) reader and writer in C++. JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate.
Categories
License
Update Notifications
User Ratings
User Reviews
-
Makes handling json in c++ effortless. Good work.Nice project! You did a great job. Thank you!
-
It's really good apart from the lack of UNICODE support, I'd have to change everything to TCHAR and std::wstring :(
-
It corrupts heap memory! Developers don't correct even critical bugs for a months (see bug list).
-
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)
-
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.