<bdo id='eV6LN'></bdo><ul id='eV6LN'></ul>

        <i id='eV6LN'><tr id='eV6LN'><dt id='eV6LN'><q id='eV6LN'><span id='eV6LN'><b id='eV6LN'><form id='eV6LN'><ins id='eV6LN'></ins><ul id='eV6LN'></ul><sub id='eV6LN'></sub></form><legend id='eV6LN'></legend><bdo id='eV6LN'><pre id='eV6LN'><center id='eV6LN'></center></pre></bdo></b><th id='eV6LN'></th></span></q></dt></tr></i><div id='eV6LN'><tfoot id='eV6LN'></tfoot><dl id='eV6LN'><fieldset id='eV6LN'></fieldset></dl></div>

      1. <legend id='eV6LN'><style id='eV6LN'><dir id='eV6LN'><q id='eV6LN'></q></dir></style></legend>

      2. <tfoot id='eV6LN'></tfoot>

        <small id='eV6LN'></small><noframes id='eV6LN'>

        使用 Boost 序列化和反序列化 JSON

        Serializing and deserializing JSON with Boost(使用 Boost 序列化和反序列化 JSON)
        1. <tfoot id='BlQzu'></tfoot>
        2. <legend id='BlQzu'><style id='BlQzu'><dir id='BlQzu'><q id='BlQzu'></q></dir></style></legend>
            • <bdo id='BlQzu'></bdo><ul id='BlQzu'></ul>

                <tbody id='BlQzu'></tbody>

              • <small id='BlQzu'></small><noframes id='BlQzu'>

                  <i id='BlQzu'><tr id='BlQzu'><dt id='BlQzu'><q id='BlQzu'><span id='BlQzu'><b id='BlQzu'><form id='BlQzu'><ins id='BlQzu'></ins><ul id='BlQzu'></ul><sub id='BlQzu'></sub></form><legend id='BlQzu'></legend><bdo id='BlQzu'><pre id='BlQzu'><center id='BlQzu'></center></pre></bdo></b><th id='BlQzu'></th></span></q></dt></tr></i><div id='BlQzu'><tfoot id='BlQzu'></tfoot><dl id='BlQzu'><fieldset id='BlQzu'></fieldset></dl></div>
                  本文介绍了使用 Boost 序列化和反序列化 JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我是 C++ 的新手.使用 boost 序列化和反序列化 std::Map 类型的数据的最简单方法是什么?我找到了一些使用 PropertyTree 的例子,但它们对我来说很模糊.

                  I'm newbie to C++. What's the easiest way to serialize and deserialize data of type std::Map using boost. I've found some examples with using PropertyTree but they are obscure for me.

                  推荐答案

                  注意 property_tree 将键解释为路径,例如放置一对 "a.b"="z" 将创建一个 {"a":{"b":"z"}} JSON,而不是一个 {"a.b":"z"}.否则,使用 property_tree 是微不足道的.这是一个小例子.

                  Note that property_tree interprets the keys as paths, e.g. putting the pair "a.b"="z" will create an {"a":{"b":"z"}} JSON, not an {"a.b":"z"}. Otherwise, using property_tree is trivial. Here is a little example.

                  #include <sstream>
                  #include <map>
                  #include <boost/property_tree/ptree.hpp>
                  #include <boost/property_tree/json_parser.hpp>
                  
                  using boost::property_tree::ptree;
                  using boost::property_tree::read_json;
                  using boost::property_tree::write_json;
                  
                  void example() {
                    // Write json.
                    ptree pt;
                    pt.put ("foo", "bar");
                    std::ostringstream buf; 
                    write_json (buf, pt, false);
                    std::string json = buf.str(); // {"foo":"bar"}
                  
                    // Read json.
                    ptree pt2;
                    std::istringstream is (json);
                    read_json (is, pt2);
                    std::string foo = pt2.get<std::string> ("foo");
                  }
                  
                  std::string map2json (const std::map<std::string, std::string>& map) {
                    ptree pt; 
                    for (auto& entry: map) 
                        pt.put (entry.first, entry.second);
                    std::ostringstream buf; 
                    write_json (buf, pt, false); 
                    return buf.str();
                  }
                  

                  这篇关于使用 Boost 序列化和反序列化 JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How to print vector#39;s data(如何打印矢量的数据)
                  Visual C++ appends 0xCC (int3) bytes at the end of functions(Visual C++ 在函数末尾附加 0xCC (int3) 字节)
                  How to use a variable inside a _T wrapper?(如何在 _T 包装器中使用变量?)
                  MSVC++ warning flags(MSVC++ 警告标志)
                  How to read file which contains uxxxx in vc++(如何在vc++中读取包含uxxxx的文件)
                  stack overflow error in C++ program(C++程序中的堆栈溢出错误)
                    <tbody id='LDGyI'></tbody>
                    <legend id='LDGyI'><style id='LDGyI'><dir id='LDGyI'><q id='LDGyI'></q></dir></style></legend>

                      • <bdo id='LDGyI'></bdo><ul id='LDGyI'></ul>

                          <small id='LDGyI'></small><noframes id='LDGyI'>

                        • <tfoot id='LDGyI'></tfoot>
                            <i id='LDGyI'><tr id='LDGyI'><dt id='LDGyI'><q id='LDGyI'><span id='LDGyI'><b id='LDGyI'><form id='LDGyI'><ins id='LDGyI'></ins><ul id='LDGyI'></ul><sub id='LDGyI'></sub></form><legend id='LDGyI'></legend><bdo id='LDGyI'><pre id='LDGyI'><center id='LDGyI'></center></pre></bdo></b><th id='LDGyI'></th></span></q></dt></tr></i><div id='LDGyI'><tfoot id='LDGyI'></tfoot><dl id='LDGyI'><fieldset id='LDGyI'></fieldset></dl></div>