首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

C++ 获取 数据中的 数组 信息(小弟的技术分就剩上10分了!求各位大大帮帮忙)

2012-09-23 
C++ 获取 数据中的 数组 信息(小弟的技术分就剩下10分了!求各位大大帮帮忙)我用char * url1 http://mes

C++ 获取 数据中的 数组 信息(小弟的技术分就剩下10分了!求各位大大帮帮忙)
我用 
char * url1 = "http://messaging-a.365wos.org:9901/integrate/receive.action?time="; 
char * url = (char*)malloc( strlen(url1) + strlen(time) + 1 );  
strcpy (url, url1);
strcat (url, time);

fn_CallUUIM pCallUUIM = (fn_CallUUIM)GetProcAddress(hLib, "CallUUIM");
char* html = pCallUUIM(url); // html 得到的是接口返回的一个字符串

Jzon::Object recvData; //定义返回数据
recvData.Read(html); //读取html返回数据
std::string recvCode = recvData.Get("code").AsString(); // 获取html字符串中code值并转换成字符串
std::string recvTime = recvData.Get("time").AsString();
Jzon::Array &msgdata = recvData.Get("msgs").AsArray();
msgdata.Get(2).AsString();

CString str; 
str = (CString)html;
// str = recvCode.c_str();
   
  AfxMessageBox(str);

我用上述代码来实现 获取 一段数据中的某些信息,这段数据举例(类似)如下:

{"time":"13094508676","msgs":[{"param":{"status":"ONLINE","uuid":"1001"}, "msgtype":"0","sendtime":"2012-09-16 15:45:08", "cmdtype":"CMD_ONLINESTATUS"},{"param":{"status":"ONLINE","uuid":"1001"}, "msgtype":"0","sendtime":"2012-09-16 15:45:08", "cmdtype":"CMD_ONLINESTATUS"}], "code":"A00006"}

问题:
首先,我用Jzon::Array &msgdata = recvData.Get("msgs").AsArray();能获取到数组 "msgs[]" 的信息,但是我不知道怎么把它提取出来,像提取recvCode一样能进行字符转换,然后我要根据我获取到的 "msgs[]" 中的数据 再 分别提取出 param, msgtype, cmdtype, sendtime...对应的数据,比如 msgtype == 0 ; 

各位大大,我不知道这个怎么做,请你们帮帮忙,一直在线等~~~ 


[解决办法]
就是解析字符串吧,CString类的一些函数应该就可以做到吧CString::Find/Mide/Left/Right()
[解决办法]
Jzon 库没用过, 看数据像 JSON.

如果是数组,应该重载了 []操作符.

msgdata[0].Get("msgtype").AsString()
之类的..

找找类的成员函数,总会有的.
[解决办法]
用string ,自己写一些专门用于你程序的函数,比如寻找两个逗号之间的文本,
CString 的话写起来也不难,string的话有StL的支持代码少一点

热点排行