2016-04-26 23 views
1

ネットワークからJSON形式の文字列を受け取り、それをBoostプロパティツリーでデコードするとします。それを行う最善の方法は何ですか?std :: string形式のJSONをBoostプロパティツリーにデコードするには?

+0

あなたは試してみましたいくつかのコードを表示することができ、そして多分誰かがそこからあなたを助けることができます。 – gottlieb76

+0

私はスペイン語の記事を知っているので、私は驚いています。 – peterh

+0

@peterhは何らかの皮肉な賞を手にしています、私は参照してください:) – sehe

答えて

1

簡単な例を作成するために、我々は次の内容のネットワークから受信しようとしている文字列を表現するためのコード内の文字列を持っていると仮定することができます:

{ 
    "Test": "string", 
    "Test2": 
    { 
     "inner0": "string2", 
     "inner1": "string3", 
     "inner2": "1234" 
    } 
} 

ことを解釈するように、コード

#include <boost/property_tree/json_parser.hpp> 
#include <iostream> 
#include <sstream> 

int main() 
{ 
    std::stringstream buffer("{ \"Test\": \"string\", \"Test2\": { \"inner0\": \"string2\", \"inner1\": \"string3\", \"inner2\": \"1234\" } }"); 
    std::cout << buffer.str() << std::endl; 

    boost::property_tree::ptree pt; 
    boost::property_tree::json_parser::read_json(buffer, pt); 

    std::string test2_inner0_str = pt.get<std::string>("Test2.inner0"); 
    int test2_inner2_value = pt.get<int>("Test2.inner2"); 

    std::cout << test2_inner0_str << std::endl; 
    std::cout << test2_inner2_value << std::endl; 
} 

プリント:

以下れる文字列として

{ "Test": "string", "Test2": { "inner0": "string2", "inner1": "string3", "inner2": "1234" } } 
string2 
1234 
+0

優れたサンプル。 +1 – sehe

関連する問題