int CAsyncTCPServer::AnalyzeHttpJson(const char *buffer,int len)
{
char *DevInfoBuffer = NULL;
DevInfoBuffer = new char[len+1];
assert(DevInfoBuffer != NULL);
memset(DevInfoBuffer,0x00,len+1);
strncpy(DevInfoBuffer, buffer, len);
cJSON* AnalyJson = cJSON_Parse(DevInfoBuffer);
if(!AnalyJson){
return -1;
}
std::string sUID = "";
std::string Dev = "";
if (AnalyJson)
{
cJSON* ChildJson = AnalyJson->child;
while (ChildJson)
{
if (0 == strcmp(ChildJson->string,"devInfo"))
{
cJSON* AnalyJsonParam = cJSON_GetObjectItem(AnalyJson,"devInfo");
if (AnalyJsonParam)
{
cJSON* ChildJsonParam = AnalyJsonParam->child;
while (ChildJsonParam)
{
if (0 == strcmp(ChildJsonParam->string,"GUID"))
{
sUID = ChildJsonParam->valuestring;
}
if (0 == strcmp(ChildJsonParam->string,"devStaticInfo"))
{
cJSON *DevStaticInfoJson=cJSON_GetObjectItem(AnalyJsonParam,"devStaticInfo");
if (DevStaticInfoJson)
{
cJSON *item=cJSON_GetObjectItem(DevStaticInfoJson,"IP");
if (0 == strcmp(item->string,"IP"))
{
//strncpy(TextBroad.sIP,item->valuestring,strlen(item->valuestring));
}
}
}
ChildJsonParam = ChildJsonParam->next;
}
}
}
ChildJson = ChildJson->next;
}
}
if (DevInfoBuffer)
{
delete []DevInfoBuffer;
DevInfoBuffer = NULL;
}
if (AnalyJson)
{
cJSON_Delete(AnalyJson);
}
return 0;
}
JSON解析例子
猜你喜欢
转载自blog.csdn.net/qq_37990044/article/details/85920291
今日推荐
周排行