User Ratings
Rate This Project
Login To Rate This Project
Featured Reviews
Highest Rated
Good library: it can store UTF-8 text without \uXXXX\uXXXX encoding, so .json file is easy to read in text editors. I don't know if this violates some standards, but it is good.
Much easier in usage than boost::property_tree::json_read(). The boost can't save/load symbols > 127, it even can't read its own \uXXXX codes. I love root["name"]["name"] syntax of jsoncpp. Also i like that it is GPL-free, because GPL is a virus and not a true freedom.
One thing i regret about: there is no long int type, so i have to use double :)
Used it in my project: audigger (sourceforce)
Lowest Rated
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.
User Reviews
-
Very user-friendly and effective at what it should do. Fulfilled all of my expectations!
-
Like this one here.
-
All apps open source. Excellent.
-
Straight forward SIMPLE user interface.
-
Best utility on the market
-
Outstanding utility.
-
Best tool in his category, even beter than comercial software
-
great tool
-
A must have tool, can't live without it
-
It is very good program.
-
Good app. I like it. Thanks for work.
-
Very nice lightweight library. Used json-glib before. I've wrote an ebuild for gentoo users (JSONCpp ver 0.5.0), feel free to use it. http://grigory.info/portage/dev-libs/jsoncpp/jsoncpp-0.5.0.ebuild
-
great software! :)
-
I am here.
-
It's really good apart from the lack of UNICODE support, I'd have to change everything to TCHAR and std::wstring :(
-
I have not used json-cpp yet, but the idea is good!
-
Great project, thanks a ton for giving out
-
Easy to use.
-
Pros -- Easy to use. Some, however raw JSONPath implementation. Cons -- lack of : nocase, memory callbacks, node renaming.
-
It corrupts heap memory! Developers don't correct even critical bugs for a months (see bug list).
-
Built with no problems on Visual Studio 2005. Easy to use.
-
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)
-
Clear and easy to use.... once you get it build (im not a fan of scons as a build system), but just throw the source and header files into a single directory and create a simple makefile. Ran test though valgrind, and didn't find any memory leaks even when exceptions are thrown. Some comments in the code about not being threadsafe worries me, but not sure comments are correct.
-
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.
-
nice; a few things to go (eg: 64bit integer support), but well put together. am liking it a lot so far.