相关疑难解决方法(0)

用boost读取json文件

我有这样一个文件:

[data.json]

{
    "electron": {
        "pos": [0,0,0],
        "vel": [0,0,0]
    },

    "proton": {
        "pos": [1,0,0],
        "vel": [0,0.1,0]
    },

     "proton": {
        "pos": [-1,0,0],
        "vel": [0,-0.1,-0.1]
    }
}
Run Code Online (Sandbox Code Playgroud)

如何通过解析此文件来创建粒子矢量.据我所知,我需要使用boost读取文件并将字符串(行)读入向量,然后解析向量的内容.

类粒子是这样的:

class Particle
{

    private:
    particle_type mtype; // particle_type is an enum
    vector<double> mPos;
    vector<double> mVel;
};
Run Code Online (Sandbox Code Playgroud)

在类中省略了get/set的其他方法.

基本上我想帮助创建一个vector<Particle>正确的位置和速度数据和解析到其中的particle_type数据.提前致谢.

代码主要:

int main(){

    boost::property_tree::ptree pt;
    boost::property_tree::read_json("data.json", pt);
}
Run Code Online (Sandbox Code Playgroud)

c++ json

20
推荐指数
3
解决办法
7万
查看次数

C++:如何使用boost :: property_tree创建数组?

我没有看到使用boost :: property树创建数组的方法.以下代码......

#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;
  }
}
Run Code Online (Sandbox Code Playgroud)

......只是给了我......

{
  "foo": "bar",
  "foo": "baz"
}
Run Code Online (Sandbox Code Playgroud)

boost :: property_tree上的文档很稀疏.如何使用boost :: property_tree创建JSON数组?

c++ json boost boost-propertytree

15
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×2

json ×2

boost ×1

boost-propertytree ×1