json-cpp

beta

C++ JSON parser

4.5 Stars (69)
906 Downloads (This Week)
Last Update:
Download jsoncpp-src-0.5.0.tar.gz
Browse All Files
BSD Windows Linux

Description

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.

New homepage:
https://github.com/open-source-parsers/jsoncpp
Old homepage:
http://jsoncpp.sourceforge.net

json-cpp Web Site

Categories

Data Formats

License

Public Domain, MIT License

Update Notifications





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

  • yaopeijiang
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    hello 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.

    Posted 07/27/2014
  • fuzhufang
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    hello 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 ?

    Posted 06/10/2014
  • 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
  • prof-tournesol
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Ca 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

    Posted 03/07/2014
  • mancode
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Good one! Simple and fast.

    Posted 02/07/2014
Read more reviews

Additional Project Details

Intended Audience

Developers

Programming Language

C++

Registered

2005-07-23

Icons must be PNG, GIF, or JPEG and less than 1 MiB in size. They will be displayed as 48x48 images.