rapidjson
-
hallo leute
kennt sich jemand mit rapidjson und der verwendung aus ?
hab mir die minibeispiele angesehen, die mitgeliefert werden, aber ich durchschau das zeugs nicht.
hab folgenden teststring:{ \"list\": [{\"id\":\"338260\",\"serialNumber\":\"1610000062\"},{ \"id\":\"338261\",\"serialNumber\":\"1610000063\" }] }
nun wuerde ich erwarten das es ungefaehr so funktionieren wuerde:
using namespace rapidjson; std::string t_json_string = "{ \"list\": [{\"id\":\"338260\",\"serialNumber\":\"1610000062\"},{ \"id\":\"338261\",\"serialNumber\":\"1610000063\" }] }"; Document d; d.Parse(json_t_string.c_str()); std::cout << d["list"][0]["id"];
was natuerlich nicht der fall ist.
kann mir jemand aufzeigen wie das funktioniert ? ich hab schon vieles auprobiert, aber ich bleib immer bei einer der 1000de asserts haengen.
das hab ich bis her geschafft:std::string t_json_string = "{ \"list\": [{\"id\":\"338260\",\"serialNumber\":\"1610000062\"},{ \"id\":\"338261\",\"serialNumber\":\"1610000063\" }] }"; Document d; d.Parse(t_json_string.c_str()); if(d.HasParseError()) { std::cout << "parsing error" << std::endl; } std::cout << "d.IsObject(): " << d.IsObject() << std::endl; std::cout << "is array: " << d["list"].IsArray() << std::endl; auto &list_array = d["list"]; std::cout << "array size: " << list_array.Size() << std::endl;
aber weiter komm ich nicht mehr.
Meep Meep
-
Kleines Beispiel:
// Using a reference for consecutive access is handy and faster. const Value& a = document["a"]; assert(a.IsArray()); for (SizeType i = 0; i < a.Size(); i++) // Uses SizeType instead of size_t printf("a[%d] = %d\n", i, a[i].GetInt());
Guck dir mal array an