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
);