2 * Display directory contents
9 #include <zzjson/zzjson.h>
12 static void myerror(void *ehandle, const char *format, ...) {
14 fprintf(ehandle, "error: ");
16 vfprintf(ehandle, format, ap);
22 int main(int argc, char *argv[])
24 openconsole(&dev_rawcon_r, &dev_stdcon_w);
28 ZZJSON_CONFIG config = { ZZJSON_VERY_STRICT, NULL,
29 (int(*)(void*)) fgetc,
31 malloc, calloc, free, realloc,
32 stderr, myerror, stdout,
33 (int(*)(void*,const char*,...)) fprintf,
34 (int(*)(int,void*)) fputc };
39 tmp = zzjson_create_array(&config,
40 zzjson_create_number_d(&config, 3.14),
41 zzjson_create_number_i(&config, 1234LL),
42 zzjson_create_number_i(&config, -4321LL),
43 zzjson_create_true(&config),
44 zzjson_create_false(&config),
45 zzjson_create_null(&config),
46 zzjson_create_string(&config, "hello, world"),
47 zzjson_create_object(&config,
48 "picard", zzjson_create_string(&config, "jean-luc"),
49 "riker", zzjson_create_string(&config, "william t."),
51 zzjson_create_object(&config, NULL),
52 zzjson_create_array(&config, NULL),
56 fprintf(stderr, "error during creation of json tree\n");
60 tmp2 = zzjson_array_prepend(&config, tmp,
61 zzjson_create_string(&config, "prepended string"));
64 fprintf(stderr, "error during prepend\n");
69 tmp2 = zzjson_array_append(&config, tmp,
70 zzjson_create_string(&config, "appended string (slow)"));
73 fprintf(stderr, "error during append\n");
78 zzjson_print(&config, tmp);
80 if (tmp) zzjson_free(&config, tmp);
83 tmp = zzjson_create_array(&config, NULL); /* empty array */
84 tmp = zzjson_array_prepend(&config, tmp, zzjson_create_true(&config));
85 zzjson_print(&config, tmp);
86 zzjson_free(&config, tmp);
90 tmp = zzjson_create_object(&config, NULL); /* empty object */
91 tmp = zzjson_object_prepend(&config, tmp, "hello",
92 zzjson_create_string(&config, "world"));
93 tmp = zzjson_object_append(&config, tmp, "goodbye",
94 zzjson_create_string(&config, "cruel world"));
95 zzjson_print(&config, tmp);
96 zzjson_free(&config, tmp);