<p>在API测试过程中经常会遇到传入参数为复杂类型,一般情况下在python下,习惯用字典来表示复杂类型。但是c++对字符串的处理是比较弱智的,一般c++里边会用vector来存储复杂类型,那么就存在转换的问题,下面小段代码记录了将字符串转换为Vector的过程</p>
<p>待转换的字符串如下:</p>
<p>const char * jsongroupinfo="[{/"groupId/" :946838524,/"groupname/" :/"bababa/", /"mask/":1,/"parentid/":946755072}]";</p>
<p></p>
<p> Json::Reader reader;<br>
Json::Value json_object;<br>
if (!reader.parse(jsongroupinfo, json_object))<br>
return "parse jsonstr error";<br>
SUserChggroup sucg;<br>
VECTOR< SUserChggroup > m_groupInfo;<br>
for(int i = 0; i < json_object.size(); i ++)<br>
{<br>
Json::Value ¤t = json_object[i];<br>
sucg.m_groupId = current["groupId"].asInt();<br>
sucg.m_groupName = current["groupname"].asString();<br>
sucg.m_mask = current["mask"].asInt();<br>
sucg.m_parentId = current["parentid"].asInt();<br>
m_groupInfo.push_back(sucg);<br>
}</p>
<p>待转换的字符串如下:</p>
<p>const char * jsongroupinfo="[{/"groupId/" :946838524,/"groupname/" :/"bababa/", /"mask/":1,/"parentid/":946755072}]";</p>
<p></p>
<p> Json::Reader reader;<br>
Json::Value json_object;<br>
if (!reader.parse(jsongroupinfo, json_object))<br>
return "parse jsonstr error";<br>
SUserChggroup sucg;<br>
VECTOR< SUserChggroup > m_groupInfo;<br>
for(int i = 0; i < json_object.size(); i ++)<br>
{<br>
Json::Value ¤t = json_object[i];<br>
sucg.m_groupId = current["groupId"].asInt();<br>
sucg.m_groupName = current["groupname"].asString();<br>
sucg.m_mask = current["mask"].asInt();<br>
sucg.m_parentId = current["parentid"].asInt();<br>
m_groupInfo.push_back(sucg);<br>
}</p>