cJSON源码的使用说明
cJSON是通信方面一个兼容性比较好的一个格式,具体的相关的格式如下 [ { "name":"aaa","number":1 } { "name":"bbb","number":2 } ]
针对资源中的main函数来讲解一下使用cJSON源码的流程和相关的接口
/*组装数据包*/ cJSON * pJsonRoot = NULL; pJsonRoot = cJSON_CreateObject(); if(NULL == pJsonRoot) { return 0; } cJSON_AddStringToObject(pJsonRoot,USERNAME,"zhengxianjing"); cJSON_AddStringToObject(pJsonRoot,SERCURITY_MODE,"OPEN"); cJSON_AddStringToObject(pJsonRoot,PASSWORD,"123456789"); char * p = cJSON_Print(pJsonRoot); printf("%sn%dn",p,strlen(p)); 其中cJSON_CreateObject创建一个cJSON的结构体,然后判断一下看是否成功。 然后在通过cJSON_AddStringToObject这个函数往这个结构体中添加字符串。和这个函数相关的还有 cJSON_AddNumberToObject() cJSON_AddBoolToObject() cJSON_AddFalseToObject() ...... 然后通过cJSON_Print这个函数把这个结构体打到字符串中p中
/*解析之前组装好的数据包*/ cJSON * username = NULL; cJSON * mode = NULL; cJSON * password = NULL; cJSON * root = NULL; //parse if((root = cJSON_Parse(p)) == NULL) { return ; } username = cJSON_GetObjectItem(root,USERNAME); //get string if(NULL == username) { return ; } mode = cJSON_GetObjectItem(root,SERCURITY_MODE); if(NULL == mode) { return ; } password = cJSON_GetObjectItem(root,PASSWORD); if(NULL == password) { return ; } printf("username = %snmode = %snpassword = %sn", username->valuestring,mode->valuestring,password->valuestring);
通过cJSON_Parse()这个函数分析这个字符串数据包,编程cJSON这个结构体格式,类似于cJSON_Print()这个函数的想反作用 cJSON_GetObjectItem(root,USERNAME)通过这个函数从root中得到USERNAME对应的字符串,找不到返回NULL 找到以后再打印出来。 完事。
资源链接:http://download.csdn.net/detail/u011467384/8401309
??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |