fix: simple_json 解析末尾对象值时 y 未赋值 + 缺少 '}' 兜底

两处修复 (simple_parse_json & simple_json_getarray_item):
1. if(y==NULL) strstr(q,"}\n") → if(y==NULL) y = strstr(q,"}\n")
   (缺失 y = 导致 strlen(NULL) 崩溃)
2. 新增 if(y==NULL) y = strchr(q, '}')
   (JSON 末尾对象值 "data":{...}}  只有 }} 无 }, \r\n 时需兜底)
This commit is contained in:
wangfq
2026-06-30 18:52:38 +08:00
parent ae02e58a36
commit 6389271bfc

View File

@@ -99,7 +99,8 @@ void simple_parse_json(const char * data, char *key_str, char *value_str)
if(y == NULL)
{
y = strstr(q, "}\r\n");
if(y == NULL) strstr(q, "}\n");
if(y == NULL) y = strstr(q, "}\n");
if(y == NULL) y = strchr(q, '}');
}
len = strlen(q) - strlen(y);
memcpy(value_str, q, len);
@@ -200,7 +201,8 @@ void simple_json_getarray_item(const char * data, char *key_str, char *value_str
if(y == NULL)
{
y = strstr(q, "}\r\n");
if(y == NULL) strstr(q, "}\n");
if(y == NULL) y = strstr(q, "}\n");
if(y == NULL) y = strchr(q, '}');
}
len = strlen(q) - strlen(y);
memcpy(value_str, q, len);