/* * Copyright 2023 Oleg Borodin */ #include #include #include #include #include #include #include #include #include #include #include int main(void) { int fd = open("test.json", O_RDONLY); MASSERT(fd > 0); rcache_t cache; jlexer_t lexer; jparser_t parser; rcache_init(&cache, fd); jlexer_init(&lexer, &cache); jparser_init(&parser, &lexer); if (jparser_parse(&parser) < 0) { log_error("cannot parse json\n"); return 1; } int64_t id = 0; if (jparser_bind(&parser, JVALTYPE_NUM, "id", (void *)&id) < 0) { log_error("cannot bind id variable\n"); return 1; } char* name = ""; if (jparser_bind(&parser, JVALTYPE_STR, "name", (void *)&name) < 0) { log_error("cannot bind name variable\n"); } printf("id = %ld\n", id); printf("name = %s\n", name); jparser_destroy(&parser); jlexer_destroy(&lexer); rcache_destroy(&cache); free(name); return 0; }