C++rapidjsonライブラリ解析json列
説明
stringタイプの文字列があり、文字列はjson列で、C++のrapidjsonライブラリを使用して解析されます.
コード#コード#
あなたのニーズに合わせてコードを自分で変更します.私はただの例です.
形式1
string内容は
出力は
形式2
コードはご自身で調整してください
しゅつりょく
stringタイプの文字列があり、文字列はjson列で、C++のrapidjsonライブラリを使用して解析されます.
コード#コード#
あなたのニーズに合わせてコードを自分で変更します.私はただの例です.
形式1
string内容は
{
"store":
[
{
"grid_corners":[0,1],
"status":3
},
{
"grid_corners":[5,6],
"status":10
}
]
}
#include
#include
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
#include "rapidjson/filewritestream.h"
#include "rapidjson/prettywriter.h"
#include "rapidjson/filereadstream.h"
int main(int argc, char** argv)
{
command_string = "{\"store\":[{\"grid_corners\":[0,1],\"status\":3},{\"grid_corners\":[5,6],\"status\":10}]}";
char* json = (char*)command_string.c_str();
rapidjson::Document document;
document.Parse(json);
int store_0_grid_0 = document["store"][0]["grid_corners"][0].GetInt();
int store_0_grid_1 = document["store"][0]["grid_corners"][1].GetInt();
int store_0_status = document["store"][0]["status"].GetInt();
int store_1_grid_0 = document["store"][1]["grid_corners"][0].GetInt();
int store_1_grid_1 = document["store"][1]["grid_corners"][1].GetInt();
int store_1_status = document["store"][1]["status"].GetInt();
std::cout<<store_0_grid_0<<std::endl;
std::cout<<store_0_grid_1<<std::endl;
std::cout<<store_0_status<<std::endl;
std::cout<<store_1_grid_0<<std::endl;
std::cout<<store_1_grid_1<<std::endl;
std::cout<<store_1_status<<std::endl;
return 1;
}
出力は
0
1
3
5
6
10
形式2
{
"store":[
[ 0,
[1,2,3]
],
[
[5,6,7,8,9],
2
],
[1,2],
[2,3]
]
}
コードはご自身で調整してください
std::string command_string = "{\"store\":[[0,[1,2,3]],[[5,6,7,8,9],2],[1,2],[2,3]]}" ;
char* json = (char*)command_string.c_str();
rapidjson::Document document;
document.Parse(json);
if (document["store"].IsArray())
{
std::cout<<document["store"][0].Size()<<std::endl;
std::cout<<document["store"][0][1].Size()<<std::endl;
std::cout<<document["store"][1][0][3].GetInt()<<std::endl;
}
しゅつりょく
2
3
8