Skip to content

Repository files navigation

c-json

https://github.com/standardloop/c-json

GitHub Release Platform: macOS C Version

Background

c-json is a json library written in C.

This was built to learn about lexing, parsing, and data structures such as dynamic arrays and hashmaps.

Dependencies

Example Programs

StringToJSON

#include <stdio.h>
#include <stdlib.h>
#include <standardloop/json.h>

int main(void)
{
    JSON *json = StringToJSON("[1, 2, {\"key\": \"value\"}, \"hello\"]");
    if (json == NULL)
    {
        return EXIT_FAILURE;
    }
    JSONPrint(json);
    JSONFree(json);
    return EXIT_SUCCESS;
}

JSONFromFile

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <standardloop/json.h>

int main(void)
{
    JSON *json = JSONFromFile("example.json");

    if (json == NULL)
    {
        return EXIT_FAILURE;
    }
    JSONPrint(json);
    JSONFree(json);
    return EXIT_SUCCESS;
}

JSONToString

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <standardloop/json.h>

int main(void)
{
    JSON *json = StringToJSON("[1, 2, {\"key\": \"value\"}, \"hello\"]");
    if (json == NULL)
    {
        return EXIT_FAILURE;
    }
    char *json_string = JSONToString(json);
    if (json_string == NULL)
    {
        return EXIT_FAILURE;
    }
    printf("%s\n", json_string);
    free(json_string);
    return EXIT_SUCCESS;
}

Available Tasks

task: Available tasks for this project:
* default
* release
* dependencies
* test
* sanitize
* test:build-sanitize
* test:run-sanitize
* test:build
* test:run
* clean
* fmt
* docs
* test:leaks            Run macOS leaks on the test program.

Docs

Docs are generated a first generated with doxygen as xml and then moxygen reads the xml to output markdown in the docs/ folder.

This repo uses reusable tasks from https://github.com/standardloop/taskfiles/

Precommit

This repo uses prek.

Please run prek install.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages