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

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

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

        将 C++ 类转换为 JSON

        时间:2023-06-04
        <tfoot id='wz55w'></tfoot>
        <legend id='wz55w'><style id='wz55w'><dir id='wz55w'><q id='wz55w'></q></dir></style></legend>
          <tbody id='wz55w'></tbody>
              <bdo id='wz55w'></bdo><ul id='wz55w'></ul>

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

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

                  问题描述

                  我想创建一个包含我的类的实例变量的 JSON 字符串.

                  I'd like to create a JSON string containing the instance variables of my class.

                  例如

                  class Example {  
                      std::string string;  
                      std::map<std::string, std:string> map;  
                      std::vector<int> vector;  
                  };
                  

                  会变成:

                  {
                      "string":"the-string-value",
                      "map": {
                          "key1":"val1",
                          "key2":"val2"
                      },
                      "vector":[1,2,3,4]
                  }
                  

                  我研究了几个用于创建 JSON 的 C++ 库,它们看起来都非常复杂.我想要类似于 Javascript 的 JSON.stringify(object) 的东西.换句话说,只需将 std::map 传递给它并接收一个字符串.地图可以包含其他地图、向量、列表、字符串、数字和布尔值.

                  I've looked into several C++ libraries for creating JSON and they all seem incredibly complex. I'd like something similar to Javascript's JSON.stringify(object). In other words just pass a std::map to it and receive a string. The map could contain other maps, vectors, lists, strings, numbers and bools.

                  最好的方法是什么?

                  感谢您的帮助.

                  编辑

                  我研究了以下内容:

                  json精神、jsoncpp、zoolib、JOST、CAJUN、libjson、nosjob、JsonBox、jsonme--

                  json spirit, jsoncpp, zoolib, JOST, CAJUN, libjson, nosjob, JsonBox, jsonme--

                  据我所知,我可以在下面的答案中构建一个单独的 JSON 对象并转换为 JSON 我希望能够将我的东西存储在标准集合中并进行转换.

                  Which I understand I can construct a separate JSON object as in an answer below and convert to JSON I'd like to be able to store my stuff in standard collections and convert.

                  编辑 2

                  好吧,放弃序列化类的想法,因为 C++ 缺乏反射,这似乎是不可能的.

                  Okay, scrap the idea of serializing a class since it appears that's impossible with C++'s lack of reflection.

                  是否有一种很好的方法可以将包含 std::maps、std::vectors、std::lists、数字、字符串和 bool 的 std::map 转换为 JSON,而无需更改数据类型或将数据复制到新数据类型?

                  Is there a nice way to convert a std::map containing std:maps, std::vectors, std::lists, numbers, strings, and bools to JSON without having to change datatypes or copying data to a new datatype?

                  谢谢.

                  推荐答案

                  JSON Spirit 会允许你这样做:

                  Object addr_obj;
                  
                  addr_obj.push_back( Pair( "house_number", 42 ) );
                  addr_obj.push_back( Pair( "road",         "East Street" ) );
                  addr_obj.push_back( Pair( "town",         "Newtown" ) );
                  
                  ofstream os( "address.txt" );
                  os.write( addr_obj, os, pretty_print );
                  os.close();
                  

                  输出:

                  {
                      "house_number" : 42,
                      "road" : "East Street",
                      "town" : "Newtown"
                  }
                  

                  json_map_demo.cpp 将是一个不错的地方开始吧,我想.

                  The json_map_demo.cpp would be a nice place to start, I suppose.

                  这篇关于将 C++ 类转换为 JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:直接提升序列化到字符数组 下一篇:如何为我的图形提供 vertex_index 属性

                  相关文章

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

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

                      <tfoot id='cKv0j'></tfoot>

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