User Ratings
Rate This Project
Login To Rate This Project
Featured Reviews
Highest Rated
5 out of 5 starsGood 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
1 out of 5 starsabsolutely 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
-
5 out of 5 starsRobust, small and standard de facto implementation of JSON parser in C++. We use it in educational purposes to study students.
-
5 out of 5 starsWe have been using Json-cpp for quite a number of years in our mobile games, where it has provided solid, reliable, cross-platform parsing with a very small footprint.
-
3 out of 5 starshello author, I find a bug. when i use reader prase a num string,expleme "49", it is crash type_ is int type,but value_.map_ is not createed
-
5 out of 5 starshello author, I find two bug. 1.if json more than twenty value,Could lead to a loss of "[" and "{". example: Json::Value root; Json::FastWriter writer; while(bContinue) { hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PInfo.th32ProcessID); Module32First(hModule, &MInfo); CloseHandle(hModule); hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,PInfo.th32ProcessID); char cFull[1024] = {0}; int iLen = pGetProcessImageFileNameA(hProcess,cFull,1024); Json::Value sysinfo; sysinfo["dwPid"] = (int)PInfo.th32ProcessID; sysinfo["FileName"] = PInfo.szExeFile; sysinfo["FilePath"] = DosDevicePath2LogicalPath(cFull); sysinfo["dwThreads"] = (int)PInfo.cntThreads; sysinfo["dwPriClass"] = (int)GetPriorityClass(hProcess); root.append(sysinfo); bContinue = Process32Next(hSnapshot, &PInfo); } jsondata = writer.write(root); FILE *fp; fp = fopen("aa.txt", "w"); if(fp ==NULL) printf("fails\n"); fprintf(fp, jsondata.c_str()); 2.value["key"] funtion lost aslong(),if value is FileSize. If updated, please notice 674268015@qq.com,Thank you very much.
-
3 out of 5 starshello author, I find a expression that in json_reader.cpp 566 line. like this: bool badTokenType = ( token.type_ == tokenArraySeparator && token.type_ == tokenArrayEnd ); the boolean expression always return false. I think not '&&' but '||', do you thing so ?
-
1 out of 5 starsSegfaults 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
-
5 out of 5 starsCa marche nickel , ça marche sous C++ Builder 6 : utilise les : - conteneur : tableau associatif (map), tableau dynamique (vector) de la STL C++ , - flux de chaînes : stringstream (STL C++) , - string (de la STL C++) . Très bien, y a tout ce qu'il fallait utiliser !! Pour info, je récupère les données de production d'une éolienne en JSON sous la forme : {"Items":[{"Power":"0 W"},{"DailyYield":"0 Wh"},{"TotalYield":"404,54 kWh"}]} {"Items":[{"Power":"0 W"},{"DailyYield":"22 Wh"},{"TotalYield":"576,16 kWh"}]} je décode en C++ Builder6 avec : AnsiString reponse ; // contient la donnée de production éolienne au format JSON JSONValue json ; string power, dailyYield, totalYield ; reponse[ reponse.Length() ] = 0 ; // supprime le '\0' de fin de chaîne de caractères json.decode( reponse.c_str() ) ; if( ! json.empty() ) { power = json["Items"] [0] ["Power"].asString() ; dailyYield = json["Items"] [1] ["DailyYield"].asString() ; totalYield = json["Items"] [2] ["TotalYield"].asString() ; } En javascript, pour décoder du JSON, j'utilise la librairie : json.js Merci beaucoup, ça m'a bien aidé , Did
-
4 out of 5 starsGood one! Simple and fast.
-
1 out of 5 starsDocumentation / setting up the project is a nightmare! Readmes are all outdated.
-
1 out of 5 starsWe 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.
-
5 out of 5 starsGood 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)
-
5 out of 5 starsVery helpfull!
-
5 out of 5 starsterrific program
-
5 out of 5 starsI love it!
-
5 out of 5 starsWow that is an impressive
-
5 out of 5 starsThanks!
-
5 out of 5 starsReally nice project! Thanks a lot!
-
5 out of 5 starsUP for this project
-
5 out of 5 starsGood and useful software
-
5 out of 5 starsI have been looking for this project for a long time. Awesome work dudes!
-
5 out of 5 starsGreat software! :) Thanks
-
5 out of 5 starsi use it every day, can't live without it!
-
5 out of 5 starsIt is NOT user friendly but it work very well
-
5 out of 5 starsGood for work with C++. Thank you dudes!
-
5 out of 5 starsHello,i want to know how to use json-cpp in c++ builder 6.0 ,thank yours.