00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "json_helper.h"
00014
00015 #include <stdio.h>
00016 #include <assert.h>
00017
00018
00019 void
00020 json_render_tree_indented (json_t * root, int level)
00021 {
00022 int tab;
00023 assert (root != NULL);
00024 for (tab = 0; tab < level; tab++)
00025 {
00026 printf ("> ");
00027 }
00028 switch (root->type)
00029 {
00030 case JSON_STRING:
00031 printf ("STRING: %s\n", root->text);
00032 break;
00033 case JSON_NUMBER:
00034 printf ("NUMBER: %s\n", root->text);
00035 break;
00036 case JSON_OBJECT:
00037 printf ("OBJECT: \n");
00038 break;
00039 case JSON_ARRAY:
00040 printf ("ARRAY: \n");
00041 break;
00042 case JSON_TRUE:
00043 printf ("TRUE:\n");
00044 break;
00045 case JSON_FALSE:
00046 printf ("FALSE:\n");
00047 break;
00048 case JSON_NULL:
00049 printf ("NULL:\n");
00050 break;
00051 }
00052
00053 if (root->child != NULL)
00054 {
00055 json_t *ita, *itb;
00056 ita = root->child;
00057 while (ita != NULL)
00058 {
00059 json_render_tree_indented (ita, level + 1);
00060 itb = ita->next;
00061 ita = itb;
00062 }
00063 }
00064 }
00065
00066
00067 void
00068 json_render_tree (json_t * root)
00069 {
00070 assert (root != NULL);
00071 json_render_tree_indented (root, 0);
00072 }