gpt4 book ai didi

c++ - 如何使用 nlohmann json 从字符串中获取值类型?

转载 作者:行者123 更新时间:2023-12-05 04:57:56 29 4
gpt4 key购买 nike

我得到的字符串

{
"players": [
{
"SteamId": "765611974898245625",
"CommunityBanned": false,
"VACBanned": true,
"NumberOfVACBans": 1,
"DaysSinceLastBan": 1011,
"NumberOfGameBans": 1,
"EconomyBan": "none"
}
]
}

我需要从中得到帮助

bool VACBanned = true;
int NumberOfVACBans = 1;

等等

我使用 nlohmann json

using json = nlohmann::json;
auto j3 = json::parse(respone.c_str());

if (j3.is_boolean()) // crashing without this check
g_Player[index].bVACBanned = j3.at("VACBanned").get<bool>();

由于某些原因它不起作用

最佳答案

我以前没有使用过那个解析器,只是阅读它的readme.md。看来这两种方法都有效:

bool b1 = j3.at("players")[0].at("VACBanned");
bool b2 = j3["players"][0]["CommunityBanned"];

您的 JSON 有一个根节点 players,它是一个数组;它的第一个元素可以通过[0]访问;从那时起,您可以访问所有已解析的元素。

根据您的容忍度添加错误检查 :)

附言这只是一个语法演示;我假设 OP 可以获取已解析数组的大小并遍历它以获取每个玩家的详细信息。

此外,回答您的“由于某种原因它不起作用”:

g_Player[index].bVACBanned = j3.at("VACBanned").get<bool>();

j3 没有元素 "VACBanned",所以 at("VACBanned") 可能返回 nullptr 你取消引用。

关于c++ - 如何使用 nlohmann json 从字符串中获取值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64232315/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com