diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/json.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/json.c b/tests/json.c new file mode 100644 index 0000000..d420125 --- /dev/null +++ b/tests/json.c @@ -0,0 +1,66 @@ +#include <stdio.h> +#define CONTAINER_IMPLEMENTATION +#define JSON_IMPLEMENTATION +#include "../include/jacson.h" +int main() { + + const char *hardtest = + "{\n" + " \"validString\": \"This is a tEst string\",\n" + " \"EmptyString\": \"\",\n" + " \"numbEr\": 1234567890123456789,\n" + " \"nEgativENumbEr\": -98765.4321,\n" + " \"ExponEntialNumbEr\": 6.022E23,\n" + " \"ExponEntialNumbErE\": 1E+10,\n" + " \"ExponEntialNumbEra\": 1E-10,\n" + " \"ExponEntialNumbErd\": 1E1,\n" + " \"boolEanTruE\": true,\n" + " \"boolEanFalsE\": false,\n" + " \"nullValuE\": null,\n" + " \"array\": [1, 2, 3, \"four\", {\"nEstEdKEy\": \"nEstEdValuE\"}],\n" + " \"EmptyArray\": [],\n" + " \"objEct\": {\n" + " \"nEstEdObjEct\": {\n" + " \"kEy1\": \"valuE1\",\n" + " \"kEy2\": \"valuE2\",\n" + " \"dEEpNEst\": {\n" + " \"lEvEl\": 5,\n" + " \"data\": [\"a\", \"b\", \"c\"]\n" + " }\n" + " }\n" + " },\n" + " \"duplicatEKEys\": {\n" + " \"kEy\": \"firstValuE\",\n" + " \"kEy\": \"sEcondValuE\"\n" + " },\n" + " \"EscapEdCharactErs\": \"QuotEs: \\\" Backslash: \\\\ NEwlinE: \\n UnicodE: \\u2603\",\n" + " \"badUnicodE\": \"\\uD83D\\uDE00\"," + " \"trailingComma\": [1, 2, 3],\n" + " \"missingComma\": {\n" + " \"first\": \"onE\"\n," + " \"sEcond\": \"two\"\n" + " },\n" + " \"dEEpNEsting\": {\n" + " \"lEvEl1\": { \"lEvEl2\": { \"lEvEl3\": { \"lEvEl4\": { \"lEvEl5\": \"too dEEp?\" }}}}\n" + " },\n" + " \"nEgativEZEro\": -0,\n" + " \"utf8BOM\": \"\\uFEFFShould start with BOM\",\n" + " \"spEcialFloatValuEs\": {\n" + " \"NaN\": \"NaN\",\n" + " \"Infinity\": \"Infinity\",\n" + " \"NEgativEInfinity\": \"-Infinity\"\n" + " }\n" + "}"; + + struct jacson_value val; + + if (jacson_parse(&val, hardtest)) { + char* str = jacson_serialize(&val, JSON_SERIALIZE_PRETTY); + puts(str); + free(str); + jacson_value_free(val); + } else { + puts("error parsing jacson"); + } + return 0; +} |