#include #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; }