我有这样一个文件:
[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) 我没有看到使用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数组?