aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/json.c66
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;
+}