jsoncpp解析拼装数组
2012-08-15 13:44
211 查看
int main()
{
/*
数组创建与分析:
例子一:
string strValue = "{\"ldh\":\"001\",\"gfc\":\"002\",\"yyj\":\"003\",\"andy\":[\"005\",\"123\",\"true\"]}";
Json::Reader read;
Json::Value value;
value["ldh"] = "001";
value["gfc"] = "002";
value["andy"].append( "005" );
value["andy"].append( "123" );
value["andy"].append( "true" );
//if( read.parse( strValue,value ) )
{
Json::Value val_array = value["andy"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
}
}
*/
/*
例子二:
Json::Reader read;
Json::Value value;
value["ldh"] = "001";
value["gfc"] = "002";
Value item;
Value array;
item["andy1"] = "005";
array.append( item );
item["andy1"] = "123";
array.append( item );
item["andy1"] = "true";
array.append( item );
value["andy"] = array;
cout<<value.toStyledString()<<endl;
Json::Value val_array = value["andy"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
if ( !val_array[nIndex]["andy1"].isNull() )
{
cout<<val_array[nIndex]["andy1"]<<endl;
}
}
*/
/*
例子三:
std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";
Json::Value value;
Reader read;
if ( !read.parse( strValue,value ) )
{
return -1;
}
cout<<value.toStyledString()<<endl;
Json::Value val_array = value["array"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
if ( val_array[nIndex].isMember( "cpp" ) )
{
cout<<val_array[nIndex]["cpp"]<<endl;
}
}
*/
getchar();
return 0;
}
起初使用jsoncpp的时候很别扭,例如第三个例子里面的数组有三项,在使用的时候我们却不能直接使用val_array[nIndex].asString.的确是没有搞清楚里面的格式.
总结一点:无论是哪种形式的数组,在解析的时候直接看看它对应索引的内容,我们就可以推导出其解析的方法.
{
/*
数组创建与分析:
例子一:
string strValue = "{\"ldh\":\"001\",\"gfc\":\"002\",\"yyj\":\"003\",\"andy\":[\"005\",\"123\",\"true\"]}";
Json::Reader read;
Json::Value value;
value["ldh"] = "001";
value["gfc"] = "002";
value["andy"].append( "005" );
value["andy"].append( "123" );
value["andy"].append( "true" );
//if( read.parse( strValue,value ) )
{
Json::Value val_array = value["andy"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
}
}
*/
/*
例子二:
Json::Reader read;
Json::Value value;
value["ldh"] = "001";
value["gfc"] = "002";
Value item;
Value array;
item["andy1"] = "005";
array.append( item );
item["andy1"] = "123";
array.append( item );
item["andy1"] = "true";
array.append( item );
value["andy"] = array;
cout<<value.toStyledString()<<endl;
Json::Value val_array = value["andy"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
if ( !val_array[nIndex]["andy1"].isNull() )
{
cout<<val_array[nIndex]["andy1"]<<endl;
}
}
*/
/*
例子三:
std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";
Json::Value value;
Reader read;
if ( !read.parse( strValue,value ) )
{
return -1;
}
cout<<value.toStyledString()<<endl;
Json::Value val_array = value["array"];
int iSize = val_array.size();
for ( int nIndex = 0;nIndex < iSize;++ nIndex )
{
cout<<val_array[nIndex]<<endl;
if ( val_array[nIndex].isMember( "cpp" ) )
{
cout<<val_array[nIndex]["cpp"]<<endl;
}
}
*/
getchar();
return 0;
}
起初使用jsoncpp的时候很别扭,例如第三个例子里面的数组有三项,在使用的时候我们却不能直接使用val_array[nIndex].asString.的确是没有搞清楚里面的格式.
总结一点:无论是哪种形式的数组,在解析的时候直接看看它对应索引的内容,我们就可以推导出其解析的方法.
相关文章推荐
- jsoncpp解析拼装数组
- jsoncpp解析数组
- jsoncpp封装和解析字符串、数字、布尔值和数组
- jsoncpp封装和解析字符串、数字、布尔值和数组
- jsoncpp封装和解析字符串、数字、布尔值和数组
- jsoncpp封装和解析字符串、数字、布尔值和数组
- C++ 解析Json——jsoncpp
- Cocos2dx封装、解析Json(cpp版)数据
- 利用jsoncpp+curl+opencv从服务器上解析到下载到显示图片
- 前台json数组传到后台解析
- Gson解析纯数组的json
- JS解析json数据并将json字符串转化为数组的实现方法
- jquery遍历筛选数组的几种方法和遍历解析json对象
- json解析库jsoncpp的使用
- c++使用jsonCpp和boost库解析json总结
- 解析JSON数组
- java解析json数组
- 使用JsonCpp在android NDK中解析Json
- C++的Json解析库:jsoncpp和boost
- jsoncpp解析 json对象