[英]How to get value type from string using nlohmann json?
我得到的字符串
{
"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]
訪問; 從那時起,您可以訪問所有已解析的元素。
根據您的容忍度添加錯誤檢查:)
PS 這只是一個語法演示; 我假設 OP 可以獲取解析數組的大小並遍歷它以獲取每個玩家的詳細信息。
另外,要回答您的“由於某種原因它不起作用”:
g_Player[index].bVACBanned = j3.at("VACBanned").get<bool>();
j3
沒有元素"VACBanned"
,因此at("VACBanned")
可能會返回您取消引用的nullptr
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.