json.h (683B)
1 #ifndef PLONG_JSON_H 2 #define PLONG_JSON_H 3 4 #include <stdint.h> 5 #include <stdlib.h> 6 7 #include "buf.h" 8 9 #define JSON_MAX_DEPTH 16 10 11 struct json { 12 char *buffer; 13 struct buf b; 14 int modes[JSON_MAX_DEPTH]; 15 size_t depth; 16 }; 17 18 int json_init(struct json *j, struct buf *b); 19 int json_fini(struct json *j, struct buf *b); 20 21 int json_obj_open(struct json *j); 22 int json_obj_key(struct json *j, const char *key); 23 int json_obj_close(struct json *j); 24 25 int json_arr_open(struct json *j); 26 int json_arr_close(struct json *j); 27 28 int json_bool(struct json *j, int v); 29 int json_null(struct json *j); 30 31 int json_int(struct json *j, intmax_t val); 32 33 int json_string(struct json *j, const char *value); 34 35 #endif