sj.h
极简的 C 语言 JSON 解析库。这是一个轻量级的 C 语言 JSON 解析库,提供可靠的 JSON 遍历和基础解析功能。它仅 150 行代码、无外部依赖,采用零内存分配策略,直接在原数据上进行解析,速度快且无内存泄漏风险,适用于嵌入式、物联网和游戏开发等场景。```c char *json_text = "{ \"x\": 10, \"y\": 20, \"w\": 30, \"h\": 40 }";typedef struct { int x, y, w, h; } Rect;bool eq(sj_Value val, char *s) {size_t len = val.end - val.start;return strlen(s) == len && !memcmp(s, val.start, len);}int main(void) {Rect rect = {0};sj_Reader r = sj_reader(json_text, strlen(json_text));sj_Value obj = sj_read(&r);sj_Value key, val;while (sj_iter_object(&r, obj, &key, &val)) {if (eq(key, "x")) { rect.x = atoi(val.start); }if (eq(key, "y")) { rect.y = atoi(val.start); }if (eq(key, "w")) { rect.w = atoi(val.start); }if (eq(key, "h")) { rect.h = atoi(val.start); }}printf("rect: { %d, %d, %d, %d }\n", rect.x, rect.y, rect.w, rect.h);return 0;}```












