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


Anmelden zum Antworten