https://github.com/standardloop/c-json
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.
#include <stdio.h>
#include <stdlib.h>
#include "./json.h" // or <standardloop/json.h> if using dynamic library
int main(void)
{
JSON *json = StringToJSON("[1, 2, {\"key\": \"value\"}, \"hello\"]");
if (json == NULL)
{
return EXIT_FAILURE;
}
PrintJSON(json);
FreeJSON(json);
return EXIT_SUCCESS;
}#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "./json.h" // or <standardloop/json.h> if using dynamic library
int main(void)
{
JSON *json = JSONFromFile("example.json");
if (json == NULL)
{
return EXIT_FAILURE;
}
PrintJSON(json);
FreeJSON(json);
return EXIT_SUCCESS;
}#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "./json.h" // or <standardloop/json.h> if using dynamic library
int main(void)
{
JSON *json = StringToJSON("[1, 2, {\"key\": \"value\"}, \"hello\"]");
if (json == NULL)
{
return EXIT_FAILURE;
}
char *json_string = JSONToString(json, true);
if (json_string == NULL)
{
return EXIT_FAILURE;
}
printf("%s\n", json_string);
free(json_string);
return EXIT_SUCCESS;
}$ task --list-all$ task- The
taskfilehas a task to compile the code with address sanitizers. - See
LEAKS.md
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/
This repo uses prek.
Please run prek install.