aboutsummaryrefslogtreecommitdiff
path: root/test/json.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/json.c')
-rw-r--r--test/json.c139
1 files changed, 139 insertions, 0 deletions
diff --git a/test/json.c b/test/json.c
new file mode 100644
index 0000000..635f474
--- /dev/null
+++ b/test/json.c
@@ -0,0 +1,139 @@
+#include <string.h>
+#include <stdio.h>
+
+#define ANY_JSON_IMPLEMENT
+#include "any_json.h"
+
+// TODO
+void test_read()
+{
+ const char *src =
+ "{\n"
+ "\t\"hello\": 1,\n"
+ "\t\"key2\": true,\n"
+ "\t\"_aaa__\": { },\n"
+ "\t\"dict\": [1, 2, { \"key\": \"value\" }],\n"
+ "\t\"varx\": 1.1\n"
+ "}\n";
+
+ //any_json_reader_t json;
+ //any_json_reader_init(&json, src, strlen(src));
+
+ //while ((key = any_json_reader_key(&json)) != NULL) {
+ // switch (any_json_reader_type(&json)) {
+ // case ANY_JSON_STRING:
+ // break;
+
+ // case ANY_JSON_NUMBER:
+ // break;
+
+ // case ANY_JSON_BOOL:
+ // break;
+
+ // case ANY_JSON_NULL:
+ // break;
+ // }
+ //}
+
+ //if (any_json_next_object(&json)) {
+ // char *key;
+ // while ((key = any_json_next_key(&json)) != NULL) {
+ // printf("KEY: %s\n", key);
+
+ // any_json_
+ // }
+ // any_json_end(&json);
+ //}
+}
+
+void test_write(bool pretty)
+{
+ any_json_write_t json;
+ any_json_write_init(&json, stdout, (any_json_write_fputs_t)fputs, pretty);
+
+ any_json_write_open_object(&json);
+
+ const char *props[][2] = {
+ { "name", "test" },
+ { "scope", "local" },
+ { "project", "any_json" },
+ { "author", "me" },
+ { 0 },
+ };
+
+ for (int i = 0; props[i][0] != NULL; i++) {
+ any_json_write_member(&json, props[i][0]);
+ any_json_write_string(&json, props[i][1]);
+ }
+
+ any_json_write_member(&json, "list");
+ any_json_write_open_array(&json);
+ {
+ any_json_write_member(&json, NULL);
+ any_json_write_number(&json, 1111111);
+
+ any_json_write_member(&json, NULL);
+ any_json_write_number(&json, 49e32);
+
+ any_json_write_member(&json, NULL);
+ any_json_write_number(&json, 99.99);
+
+ any_json_write_member(&json, NULL);
+ any_json_write_open_array(&json);
+ {
+ any_json_write_member(&json, NULL);
+ any_json_write_string(&json, "nested");
+
+ any_json_write_member(&json, NULL);
+ any_json_write_string(&json, "array");
+ }
+ any_json_write_close_array(&json);
+ }
+ any_json_write_close_array(&json);
+
+ any_json_write_member(&json, "sub");
+ any_json_write_open_object(&json);
+ {
+ any_json_write_member(&json, "data");
+ any_json_write_open_object(&json);
+ {
+ any_json_write_member(&json, "handle");
+ any_json_write_null(&json);
+
+ any_json_write_member(&json, "version");
+ any_json_write_number(&json, 1.1);
+ }
+ any_json_write_close_object(&json);
+
+ any_json_write_member(&json, "pack");
+ any_json_write_open_array(&json);
+ {
+ any_json_write_member(&json, NULL);
+ any_json_write_string(&json, "bin");
+
+ any_json_write_member(&json, NULL);
+ any_json_write_string(&json, "lib");
+
+ any_json_write_member(&json, NULL);
+ any_json_write_bool(&json, true);
+ }
+ any_json_write_close_array(&json);
+ }
+ any_json_write_close_object(&json);
+
+ any_json_write_close_object(&json);
+
+ puts("\n");
+}
+
+int main()
+{
+ printf("JSON WRITE TEST\n");
+ test_write(false);
+
+ printf("JSON PRETTY WRITE TEST\n");
+ test_write(true);
+
+ return 0;
+}
+