Fix json printing errors

This commit is contained in:
olemorud
2023-04-23 19:38:15 +02:00
parent 5365740941
commit f70be0f392
2 changed files with 10 additions and 8 deletions

View File

@@ -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;
}; };
}; };

View File

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