2010-09-20 24 views
15

Boost :: özellik ağacını kullanarak bir dizi oluşturmanın bir yolunu göremiyorum. Aşağıdaki kodu ...C++: boost :: property_tree kullanarak nasıl bir dizi oluşturulur?

#include <boost/property_tree/ptree.hpp> 
#include <boost/property_tree/json_parser.hpp> 

#include <iostream> 

int main() 
{ 
    try { 
    boost::property_tree::ptree props; 
    props.push_back(std::make_pair("foo", "bar")); 
    props.push_back(std::make_pair("foo", "baz")); 
    boost::property_tree::write_json("prob.json", props); 
    } catch (const std::exception & ex) { 
    std::cout << ex.what() << std::endl; 
    } 
} 

... sadece bana verir ... boost :: property_tree üzerinde

{ 
    "foo": "bar", 
    "foo": "baz" 
} 

docs azdır. Boost :: property_tree ile nasıl bir JSON dizisi oluşturabilirim?

cevap

20

kimin yalnızca düğümler boş tuşları var, o zaman bir dizi olarak tefrika edilecek bir alt ağaç varsa:

boost::property_tree::ptree array; 
array.push_back(std::make_pair("", "bar")); 
array.push_back(std::make_pair("", "baz")); 

boost::property_tree::ptree props; 
props.push_back(std::make_pair("array", array)); 

boost::property_tree::write_json("prob.json", props); 
+2

Not Buna üzücü doğal sonucu boş oluşturmak için bir yol olduğunu olduğunu JSON dizisi. –

+4

@MichaelAnderson: XML ve JSON'u işlemek için “boost :: property_tree” yi kullanmayı düşünmüyorum. Bunun için inşa edildiği şey değil. Bu görevlerin her ikisi için de “boost :: property_tree” olarak “küçük” olan çok daha iyi kütüphaneler vardır. – ybungalobill

+0

@ybungalobill: hangi kütüphaneleri önerirsiniz? – Jonathan

İlgili konular