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

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

你可能感兴趣的:(java,json,PHP)