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

  • <tfoot id='osyi4'></tfoot>

      1. <legend id='osyi4'><style id='osyi4'><dir id='osyi4'><q id='osyi4'></q></dir></style></legend>
          <bdo id='osyi4'></bdo><ul id='osyi4'></ul>
        <i id='osyi4'><tr id='osyi4'><dt id='osyi4'><q id='osyi4'><span id='osyi4'><b id='osyi4'><form id='osyi4'><ins id='osyi4'></ins><ul id='osyi4'></ul><sub id='osyi4'></sub></form><legend id='osyi4'></legend><bdo id='osyi4'><pre id='osyi4'><center id='osyi4'></center></pre></bdo></b><th id='osyi4'></th></span></q></dt></tr></i><div id='osyi4'><tfoot id='osyi4'></tfoot><dl id='osyi4'><fieldset id='osyi4'></fieldset></dl></div>
      2. 使用属性树在 Boost 中创建 JSON 数组

        时间:2023-07-20
          <bdo id='Lg1mt'></bdo><ul id='Lg1mt'></ul>
            <tbody id='Lg1mt'></tbody>
              <i id='Lg1mt'><tr id='Lg1mt'><dt id='Lg1mt'><q id='Lg1mt'><span id='Lg1mt'><b id='Lg1mt'><form id='Lg1mt'><ins id='Lg1mt'></ins><ul id='Lg1mt'></ul><sub id='Lg1mt'></sub></form><legend id='Lg1mt'></legend><bdo id='Lg1mt'><pre id='Lg1mt'><center id='Lg1mt'></center></pre></bdo></b><th id='Lg1mt'></th></span></q></dt></tr></i><div id='Lg1mt'><tfoot id='Lg1mt'></tfoot><dl id='Lg1mt'><fieldset id='Lg1mt'></fieldset></dl></div>

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

                <tfoot id='Lg1mt'></tfoot>

                <legend id='Lg1mt'><style id='Lg1mt'><dir id='Lg1mt'><q id='Lg1mt'></q></dir></style></legend>

                  本文介绍了使用属性树在 Boost 中创建 JSON 数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试使用 boost 属性树创建一个 JSON 数组.

                  I'm trying to create a JSON array using boost property trees.

                  文档 说:JSON 数组映射到节点.每个元素都是一个名称为空的子节点."

                  The documentation says: "JSON arrays are mapped to nodes. Each element is a child node with an empty name."

                  所以我想创建一个空名称的属性树,然后调用 write_json(...) 来获取数组.但是,文档没有告诉我如何创建未命名的子节点.我试过 ptree.add_child("", value),但结果是:

                  So I'd like to create a property tree with empty names, then call write_json(...) to get the array out. However, the documentation doesn't tell me how to create unnamed child nodes. I tried ptree.add_child("", value), but this yields:

                  Assertion `!p.empty() && "Empty path not allowed for put_child."' failed
                  

                  文档似乎没有解决这一点,至少我无法弄清楚.有人可以帮忙吗?

                  The documentation doesn't seem to address this point, at least not in any way I can figure out. Can anyone help?

                  推荐答案

                  简单数组:

                  #include <boost/property_tree/ptree.hpp>
                  using boost::property_tree::ptree;
                  
                  ptree pt;
                  ptree children;
                  ptree child1, child2, child3;
                  
                  child1.put("", 1);
                  child2.put("", 2);
                  child3.put("", 3);
                  
                  children.push_back(std::make_pair("", child1));
                  children.push_back(std::make_pair("", child2));
                  children.push_back(std::make_pair("", child3));
                  
                  pt.add_child("MyArray", children);
                  
                  write_json("test1.json", pt);
                  

                  结果:

                  {
                      "MyArray":
                      [
                          "1",
                          "2",
                          "3"
                      ]
                  }
                  

                  对象上的数组:

                  ptree pt;
                  ptree children;
                  ptree child1, child2, child3;
                  
                  
                  child1.put("childkeyA", 1);
                  child1.put("childkeyB", 2);
                  
                  child2.put("childkeyA", 3);
                  child2.put("childkeyB", 4);
                  
                  child3.put("childkeyA", 5);
                  child3.put("childkeyB", 6);
                  
                  children.push_back(std::make_pair("", child1));
                  children.push_back(std::make_pair("", child2));
                  children.push_back(std::make_pair("", child3));
                  
                  pt.put("testkey", "testvalue");
                  pt.add_child("MyArray", children);
                  
                  write_json("test2.json", pt);
                  

                  结果:

                  {
                      "testkey": "testvalue",
                      "MyArray":
                      [
                          {
                              "childkeyA": "1",
                              "childkeyB": "2"
                          },
                          {
                              "childkeyA": "3",
                              "childkeyB": "4"
                          },
                          {
                              "childkeyA": "5",
                              "childkeyB": "6"
                          }
                      ]
                  }
                  

                  希望能帮到你

                  这篇关于使用属性树在 Boost 中创建 JSON 数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:使用 C++ Boost 库的优势是什么? 下一篇:为此获得 boost::shared_ptr

                  相关文章

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

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

                      <legend id='PhNYs'><style id='PhNYs'><dir id='PhNYs'><q id='PhNYs'></q></dir></style></legend>