2017-03-28 1 views
0

Wie mache ich JSON-Datei (string) aus:Wie erstellt man eine JSON-Datei mit der Rapidjson-Bibliothek von Vektor <string> Daten?

vector<string>m_paths

Ich habe Code:

rapidjson::Document jsonfile; 
    jsonfile.SetObject(); 
    rapidjson::Document::AllocatorType& jsonallocator = jsonfile.GetAllocator(); 


    std::vector<String>::iterator itm; 
    rapidjson::Value paths(rapidjson::kArrayType); 

    for(itm = m_paths.begin(); itm != m_paths.end(); ++itm) 
    { 
     //rapidjson::Value jValueConverting; 
     // jValueConverting.SetString(GetLogRpl().c_str(), (rapidjson::SizeType)GetLogRpl().size(), jsonallocator); 
    } 

    jsonfile.AddMember("paths", paths, jsonallocator); 


    rapidjson::StringBuffer jsonstring; 
    rapidjson::Writer<rapidjson::StringBuffer> jsonwriter(jsonstring); 
    jsonfile.Accept(jsonwriter); 

    String fullJsonString = jsonstring.GetString(); 

    return fullJsonString; 

I rapidjson Bibliothek verwenden müssen und nicht wissen, was ich nach dem Erstellen allocator tun sollten . Danke für jede Hilfe!

+0

Bitte lesen Sie http://stackoverflow.com/help/how-to-ask und bearbeiten Sie Ihre Frage, um die dort beschriebenen Standards zu erfüllen. – jbrown

+0

Ich bezweifle, dass Sie sich Sorgen über den Zuordner machen müssen. Wenn Sie das tun, ist Rapidjson sehr schlecht gestaltet. Zuweiser sind für fortgeschrittene Programmierung, wo Sie möglicherweise keinen Zugriff auf den normalen Heap haben. –

Antwort

1
 StringBuffer sb; 
     PrettyWriter writer(sb); 
     writer.StartObject(); 
     writer.String(_T("paths")); 
     writer.StartArray(); 
     std::vector<String>::iterator itm; 
     for(itm = m_paths.begin(); itm != m_paths.end(); ++itm) 
     { 
      writer.String(*itm); 
     } 
     return writer.EndArray(); 
     writer.EndObject(); 

     std::string fullJsonString = sb.GetString(); 
Verwandte Themen