jsoncpp解析拼装数组

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.的确是没有搞清楚里面的格式.

总结一点:无论是哪种形式的数组,在解析的时候直接看看它对应索引的内容,我们就可以推导出其解析的方法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值