//删减修改过后的内容,仅供参考
const char *pJsonData;
cJSON *pJsonObj = cJSON_Parse(pJsonData);
cJSON *pData = cJSON_GetObjectItem(pContent,"data");
if(pData)
{
cJSON *pIntent = cJSON_GetObjectItem(pData,"intent");
if(pIntent)
{
cJSON *pIntent2 = cJSON_GetObjectItem(pIntent,"intent");
if(pIntent2)
{
if(strcmp(pIntent2->valuestring ,"INTENT_RECHARGE")==0)
{
cJSON *pEntities = cJSON_GetObjectItem(pIntent,"entities");
if(!pEntities)
{
printf("[%s][%s][%d] no entities", __FILE__ , __FUNCTION__, __LINE__);
}
int iEntitiesSize = cJSON_GetArraySize(pEntities);
if(iEntitiesSize > 0)
{
cJSON *pEntitiesList = cJSON_GetArrayItem(pEntities,0);
cJSON *pWord = cJSON_GetObjectItem(pEntitiesList,"word");
if(!pWord)
{
printf("[%s][%s][%d] no word", __FILE__ , __FUNCTION__, __LINE__);
}
int iAmount = pWord->valueint;
printf("[%s][%s][%d] iAmount = %d", __FILE__ , __FUNCTION__, __LINE__,iAmount);
}
}
}
}
}
return true;
cJSON提供的方法类![](https://i-blog.csdnimg.cn/blog_migrate/cd3d6bcd6d7cef20ef562d345bdc827d.png)
cJSON的成员变量![](https://i-blog.csdnimg.cn/blog_migrate/1ebaf0f79bf114522aae4c24957d8451.png)
区别在于:
int c = atoi(pCode->valuestring);
int w = pWord->valueint;
C++ 中 char*,char[],string相互转换
1.char*和char[]
(1) char[]转char*
char ch[] = "abcd";
char *s = ch;
(2)char*转char[]
//需要用strcpy()函数,因为数组的地址是固定的,不能被修改指向
char *s = "abcd";
char ch[16];
strcpy(ch,s);
2.char*和string
(1)char*转string
string str;
char *p = "abcd";
str = p;
(2)string转char*
string str = "abcd";
char *p = (char*) str.c_str();
3.char[]和string
(1)char[]转string
string str;
char ch[10] = "abcd";
str = ch;
(2)string转char[]
string str = "abcd";
char ch[10];
for(int i = 0;i < str.length();i++)
{
ch[i] = str[i];
}
ch[i] = '\0';