Fix json printing errors
This commit is contained in:
@@ -21,7 +21,7 @@ struct json_value {
|
|||||||
struct json_value** array;
|
struct json_value** array;
|
||||||
char* string;
|
char* string;
|
||||||
bool boolean;
|
bool boolean;
|
||||||
int64_t number;
|
double number;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
16
src/parse.c
16
src/parse.c
@@ -443,19 +443,21 @@ void print_array(struct json_value** arr, int cur_indent, int indent_amount)
|
|||||||
{
|
{
|
||||||
putchar('[');
|
putchar('[');
|
||||||
|
|
||||||
|
if(arr[0] == NULL) {
|
||||||
|
putchar(']');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; arr[i + 1] != NULL; i++) {
|
for (i = 0; arr[i+1] != NULL; i++) {
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
add_indent(cur_indent);
|
add_indent(cur_indent);
|
||||||
print_json_value(*arr[i], cur_indent + indent_amount, indent_amount);
|
print_json_value(*arr[i], cur_indent + indent_amount, indent_amount);
|
||||||
putchar(',');
|
if( arr[i+1] != NULL )
|
||||||
|
putchar(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
putchar('\n');
|
|
||||||
add_indent(cur_indent);
|
|
||||||
print_json_value(*arr[i], cur_indent + indent_amount, indent_amount);
|
|
||||||
|
|
||||||
putchar('\n');
|
putchar('\n');
|
||||||
add_indent(cur_indent - indent_amount * 2);
|
add_indent(cur_indent - indent_amount * 2);
|
||||||
putchar(']');
|
putchar(']');
|
||||||
@@ -469,7 +471,7 @@ void print_json_value(struct json_value val, int cur_indent,
|
|||||||
printf("\"%s\"", val.string);
|
printf("\"%s\"", val.string);
|
||||||
break;
|
break;
|
||||||
case number:
|
case number:
|
||||||
printf("%zu", val.number);
|
printf("%lf", val.number);
|
||||||
break;
|
break;
|
||||||
case boolean:
|
case boolean:
|
||||||
printf("%s", val.boolean ? "true" : "false");
|
printf("%s", val.boolean ? "true" : "false");
|
||||||
|
|||||||
Reference in New Issue
Block a user