Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

esnme/ujson4c

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 

ujson4c

A more user friendly layer for decoding JSON in C/C++ based on the ultra fast UltraJSON library

Usage

Copy all of the files from /src and /3rdparty into a folder of choice in your own project. #include ujdecode.h read more about the API in ujdecode.h

Example:

UJObject obj;
void *state;
const char input[] = "{\"name\": \"John Doe\", \"age\": 31, \"number\": 1337.37, \"address\": { \"city\": \"Uppsala\", \"population\": 9223372036854775807 } }";
size_t cbInput = sizeof(input) - 1;

const wchar_t *personKeys[] = { L"name", L"age", L"number", L"address"};
UJObject oName, oAge, oNumber, oAddress;

obj = UJDecode(input, cbInput, NULL, &state);

if (UJObjectUnpack(obj, 4, "SNNO", personKeys, &oName, &oAge, &oNumber, &oAddress) == 4)
{
    const wchar_t *addressKeys[] = { L"city", L"population" };
    UJObject oCity, oPopulation;

    const wchar_t *name = UJReadString(oName, NULL);
    int age = UJNumericInt(oAge);
    double number = UJNumericFloat(oNumber);

    if (UJObjectUnpack(oAddress, 2, "SN", addressKeys, &oCity, &oPopulation) == 2)
    {
        const wchar_t *city;
        long long population;
        city = UJReadString(oCity, NULL);
        population = UJNumericLongLong(oPopulation);
    }
}

UJFree(state);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages