Say I have a json array that looks like this:

[

{

"Name": "test",

"Val": "test_val"

},

{

"Name": "test2",

"Val": "test_val2"

}

]

I want to convert this into a vector of structs:

struct Test {

string Name;

string Val;

};

I know about the json.get<>() method, but do not know how to apply that to this.

解决方案

For the automatic get<> to work, you need to provide a mapping between JSON and your struct:

void from_json(const nlohmann::json& j, Test& p) {

j.at("Name").get_to(p.Name);

j.at("Val").get_to(p.Val);

}

Then it will work as expected.

auto parsed = json.get<:vector>>();

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐