- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下 JSON 数据:
{
"Created": "2019-08-01T14:36:49Z",
"Tags": [
{
"ObjectId": "1",
"Time": 6,
"TrackerId": "W1"
},
{
"ObjectId": "2",
"Time": 4,
"TrackerId": "E34"
},
{
"ObjectId": "3",
"Time": 4,
"TrackerId": "W1"
},
{
"ObjectId": "4",
"Time": 8,
"TrackerId": "E34"
}
],
"id": 0
}
在上面的 JSON 数据中,我们可以看到我们有 4 个对象 ID,但只有 2 个跟踪器 ID。我需要合并具有相同 TrackerId
的数据并添加它们的时间。所以上面的数据会变成:
{
"Created": "2019-08-01T14:36:49Z",
"Tags": [
{
"Time": 10,
"TrackerId": "W1"
},
{
"Time": 12,
"TrackerId": "E34"
}
],
"id": 0
}
我正在使用 Nlohmann JSON library对于 C++。我们怎样才能做到这一点?
最佳答案
您可以构建跟踪器的 map ,然后将它们输入到 JSON 对象中:
json merge_objects(const json& data)
{
std::map<std::string, int> times;
for (const auto& entry : data["Tags"]) {
times[entry["TrackerId"]] += static_cast<int>(entry["Time"]);
}
json result;
result["Created"] = data["Created"];
for (const auto& [id, time] : times) {
json tag;
tag["Time"] = time;
tag["TrackerId"] = id;
result["Tags"].push_back(tag);
}
return result;
}
( live demo )
关于c++ - 如何使用 nlohmann json 在 C++ 中将相同的关键 json 数据合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306578/
我有 nlohmann json 对象: json uuid = R"( { "uuid": ["aaa","bbb","cc
我正在尝试使用 json-nlohmann在 C++ 中读取 JSON 文件的库 到目前为止,我与它相处得很好,但现在我正在尝试访问给定 json 中的列表元素。 JSON: { "GameM
我目前正在以这种方式阅读我的文件: using json = nlohmann::json; std::ifstream jsonConfigFileStream("/path/to/file.jso
我正在使用 nlohmann::json,我需要做的就是复制一个 JSON 对象,然后更改其中的一些键。是否可以更改 nlohmann::json 对象中的键? 基本上我想做的是: json obj1
我有一个这样的嵌套 Json: string strJson = "{ "Header": {"Version":"V0.00.01","ID":"1000","Name":"Set
与 nlohmann::json 可以使用几个不同的表达式来解析一个对象: type x = json; type x; x = json.get(); 然而,type x; x = json;不起作
我得到的字符串 { "players": [ { "SteamId": "765611974898245625", "Commu
我已经使用nlohmann json库已有一段时间了,但是最近发现自己遇到了问题。我有一个对象的索引 vector : vector indexes = {"value1", "subval"}; /
假设我有一个如下所示的 json 数组: [ { "Name": "test", "Val": "test_val" }, { "Name": "test2",
我目前遇到一个问题,无论我在 IDE 中做什么,visual studio 代码都无法识别包含的 json.hpp 文件,我不知道问题是否是由 IDE 引起的,我自己的愚蠢错误,还是顺便安装了json
我正在尝试使用 nlohmann::json 遍历嵌套的 json。我的 json 对象如下: { "one": 1, "two": 2 "three": {
我试图搜索如何使用 JSON for Modern C++ 从 json 获取数组,但找不到答案。 我有这样的 json: { "Command": "cmd", "Data":{"time"
我的 JSON 文件类似于此 { "active" : false, "list1" : ["A", "B", "C"], "objList" : [ { "key1"
我有一些数据,比如 { "GLOBAL DATA": { "FIRST": [ {"BEGIN": "0", "END" : "100"}
我可以在 nlohmann 库中使用这种语法 { "key1": {"subKey1": "value11", "subKey2": "value12"}, "key2": {
我想知道如何删除 nlohmann::json 中的项目中的项目C++ 库。 JSON 示例文件: { "Users":{ "User1":{ "Nam
我有以下代码(简化): namespace nlohmann { // https://github.com/nlohmann/json/issues/1749#issuecomment-772996
nlohmann array_t 与Nlohmann json array 有何不同?实际如何使用 array_t ?每个文档如下。 array Creates a JSON array value
我正在尝试转换表单的 json { "content": { "test_key": "test" }, "sender": "alice", "type": "ke
我正在尝试使用 nlohmann 的 json.hpp 解析 JSON 结构.但我不会从字符串创建 JSON 结构。我已经尝试了所有方法,但仍然失败。 我的要求是: 1) 从字符串创建 JSON 结构
我是一名优秀的程序员,十分优秀!