string StrUtil::map2jsonstrObject(const map<string, Json::Value>& map_info)
{
Json::Value jObject;
for (map<string, Json::Value>::const_iterator iter = map_info.begin(); iter != map_info.end(); ++iter)
{
Json::ValueType valType = jObject.type();
if (valType == Json::stringValue && iter->second.asString().find(",") != string::npos)//同名参数转换为数组
{
jObject[iter->first] = Json::arrayValue;
std::vector<std::string> vals;
SplitBySeparator(iter->second.asString(), ",", vals);
for (std::vector<string>::iterator iterV = vals.begin(); iterV != vals.end(); iterV++)
{
jObject[iter->first].append(*iterV);
}
//jObject[iter->first].append("0");
//jObject[iter->first].append("1");
}
else
{
jObject[iter->first] = iter->second;
}
}
//return jObject.toStyledString();//toStyledString格式化字符串(有换行) getString非格式化的字符串
Json::FastWriter writer;
return writer.write(jObject);
}
========================================================================
void StrUtil::jsonstr2mapObject(const string& json, map<string, Json::Value>& maps)
{
Json::Reader reader;
Json::Value value;
if (json.length() > 0)
{
if (reader.parse(json, value))//value 就是root
{
Json::Value::Members members = value.getMemberNames();
for (Json::Value::Members::iterator it = members.begin(); it != members.end(); it++)
{
maps.insert(pair<string, Json::Value>(*it, value[*it]));
}//end for
}//end if
}
}
这里要结合jsoncpp组件来处理
这是一个使用JsonCpp库在C++中将map<string, Json::Value>对象转换为json字符串,以及将json字符串解析回map<string, Json::Value>的方法。StrUtil类提供了两个函数,map2jsonstrObject将map转换为json字符串,而jsonstr2mapObject则将json字符串解析回map。"
74970859,3245859,寻找旋转排序数组中的最小值,"['算法', '排序', '数组操作']
1098

被折叠的 条评论
为什么被折叠?



