Files
bluelib/test/json-read.c
2025-06-27 21:54:23 +01:00

45 lines
881 B
C

#include <blue/io/file.h>
#include <blue/io/path.h>
#include <blue/serial.h>
#include <stdio.h>
int main(int argc, const char **argv)
{
if (argc < 2) {
return -1;
}
const char *path_cstr = argv[1];
b_path *path = b_path_create_from_cstr(path_cstr);
b_file *file = NULL;
b_status status = b_file_open(NULL, path, B_FILE_READ_ONLY, &file);
if (!B_OK(status)) {
fprintf(stderr, "cannot open file %s\n", path_cstr);
return -1;
}
b_stream *src_stream;
b_file_open_stream(file, &src_stream);
b_serial_ctx *ctx;
b_serial_ctx_create(&ctx);
b_object *data;
status = b_serial_ctx_deserialise(
ctx, B_SERIAL_FORMAT_JSON, src_stream, &data, 0);
if (!B_OK(status)) {
fprintf(stderr, "cannot read data\n");
return -1;
}
b_to_string(B_OBJECT(data), b_stdout);
b_stream_write_char(b_stdout, '\n');
b_release(data);
b_serial_ctx_destroy(ctx);
return 0;
}