【直接撸代码】:(为了凑一点篇幅,特意加了点注释)
/*****************************************************************************
函 数 名 : just_json_get
功能描述 : 获取json中指定的字段
输入参数 : char *in_buff
char *key
char *value
输出参数 : 无
返 回 值 : char
调用函数 :
被调函数 :
修改历史 :
1.日 期 : 2018年3月31日
作 者 : mc.meng
修改内容 : 新生成函数
*****************************************************************************/
char *just_json_get(char *in_buff, char *key, char *value)
{
char this_key[200] = {0};
char *start = NULL;
char *end = NULL;
sprintf(this_key, "\"%s\":\"", key);
start = strstr(in_buff, this_key);
if (start == NULL)
{
return NULL;
}
start += strlen(this_key);
for(end = start; *end != '\"' && *end!='\0'; ++end);
memcpy(value, start, end-start);
value[end-start] = 0;
return value;
}
简单就是粗暴!
【测试用例】:
void just_json_test(void)
{
char this_buff[512] = {0};
char *this_str= "{\"message\":\"OK\",\"fileSize\":\"0\",\"updateSign\":\"1\",\"versionFileName\":\"\",\"versionMD5\":\"\",\"pushSign\":\"0\",\"code\":\"0\",\"versionURL\":\"http://tms.vvjoin.com:8628/file\",\"updateType\":\"3\"}";
LOGE("HHHD:1====>versionURL=%s", just_json_get(this_str, "versionURL", this_buff));
}