nlohmann 在不知道密钥的情况下解析 json 文件

琵琶

我正在使用 nlohmann/json 库在 cpp 中使用 json。我有一个 Json::Value 对象,我想通过探索密钥而不知道它们来浏览我的 json 数据。我遇到了文档,但只找到了object["mySuperKey"]探索数据方法,这意味着了解现有密钥。

你能给我一些提示吗?

谢谢。

什洛米·哈西德

在创建一个 json 对象之后 - 有可以迭代的类型。在此nlohmann::json实现中,您与基本容器 ( json::object, json::array)进行交互它们都具有可以轻松检索或打印的键。

这是一个小例子,它实现了一个函数来递归(或不)遍历 json 对象并打印键和值类型。

示例代码:

#include <iostream>
#include <vector>
#include "json3.6.1.hpp"

void printObjectkeys(const nlohmann::json& jsonObject, bool recursive, int ident) {
    if (jsonObject.is_object() || jsonObject.is_array()) {
        for (auto &it : jsonObject.items()) {
            std::cout << std::string(ident, ' ')
                      << it.key() << " -> "
                      << it.value().type_name() << std::endl;
            if (recursive && (it.value().is_object() || it.value().is_array()))
                printObjectkeys(it.value(), recursive, ident + 4);
        } 
    }
}

int main()
{
    //Create the JSON object:
    nlohmann::json jsonObject = R"(
        {
            "name"    : "XYZ",
            "active"  : true,
            "id"      : "4509237",
            "origin"  : null,
            "user"    : { "uname" : "bob", "uhight" : 1.84 },
            "Tags"    :[
                {"tag": "Default", "id": 71},
                {"tag": "MC16",    "id": 21},
                {"tag": "Default", "id": 11},
                {"tag": "MC18",    "id": 10}
            ],
            "Type"    : "TxnData"
        }
    )"_json;
    std::cout << std::endl << std::endl << "Read Object key, not recursive :" << std::endl;
    printObjectkeys(jsonObject, false, 1);  
    std::cout << std::endl << std::endl << "Read Object key, recursive :" << std::endl;
    printObjectkeys(jsonObject, true, 1);

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不知道我在 Python 中查找的对象名称的情况下解析 JSON 文件?

来自分类Dev

在不知道键的情况下解析json

来自分类Dev

在不知道xml文件结构的情况下解析xml文件内容

来自分类Dev

如何在不知道JSON值的情况下动态解析某些JSON?

来自分类Dev

在不知道 JSON 结构的情况下解析 Java 中的嵌套 JSON

来自分类Dev

Javascript:如何在不知道键名的情况下解析json数组?

来自分类Dev

在不知道类型的情况下从文件中读取

来自分类Dev

在不知道结构的情况下解组嵌套的json

来自分类Dev

如何使用nlohmann lib解析json?

来自分类Dev

C ++:使用nlohmann json从文件中读取json对象

来自分类Dev

在不知道文件名的情况下使用 Javascript Fetch API 读取文件

来自分类Dev

如何在不知道json键的情况下使用JsonReader从json读取值

来自分类Dev

从nlohmann json访问元素

来自分类Dev

在不知道路径的情况下用Java写入属性文件

来自分类Dev

如何在不知道bash扩展名的情况下提取各种zip文件

来自分类Dev

如何在不知道名称的情况下访问.mat文件中的“值”?

来自分类Dev

在不知道其名称的情况下,逐行读取bash中的txt文件

来自分类Dev

在不知道编码的情况下使用Python读取文件

来自分类Dev

PHP-事先不知道文件夹名称的情况下读取它们

来自分类Dev

在不知道Java中特定文件夹中的名称的情况下加载类

来自分类Dev

在不知道其名称的情况下,逐行读取bash中的txt文件

来自分类Dev

在不知道结构的情况下用python读取二进制文件

来自分类Dev

ssis在不知道现有名称的情况下重命名文件

来自分类Dev

在不知道索引的情况下从命令行参数打开文件?

来自分类Dev

如何在不知道它是否为数组的情况下遍历JSON属性?

来自分类Dev

如何在不知道对象名称的情况下返回Json objects子对象?

来自分类Dev

如何在不知道键的情况下使用 javascript 从多级 JSON 中获取值

来自分类Dev

在不知道名称的情况下扫描特定值的嵌套 json 响应

来自分类Dev

是否可以在不知道每一列的宽度或列名并将其转换为CSV的情况下解析固定宽度的文件?

Related 相关文章

  1. 1

    如何在不知道我在 Python 中查找的对象名称的情况下解析 JSON 文件?

  2. 2

    在不知道键的情况下解析json

  3. 3

    在不知道xml文件结构的情况下解析xml文件内容

  4. 4

    如何在不知道JSON值的情况下动态解析某些JSON?

  5. 5

    在不知道 JSON 结构的情况下解析 Java 中的嵌套 JSON

  6. 6

    Javascript:如何在不知道键名的情况下解析json数组?

  7. 7

    在不知道类型的情况下从文件中读取

  8. 8

    在不知道结构的情况下解组嵌套的json

  9. 9

    如何使用nlohmann lib解析json?

  10. 10

    C ++:使用nlohmann json从文件中读取json对象

  11. 11

    在不知道文件名的情况下使用 Javascript Fetch API 读取文件

  12. 12

    如何在不知道json键的情况下使用JsonReader从json读取值

  13. 13

    从nlohmann json访问元素

  14. 14

    在不知道路径的情况下用Java写入属性文件

  15. 15

    如何在不知道bash扩展名的情况下提取各种zip文件

  16. 16

    如何在不知道名称的情况下访问.mat文件中的“值”?

  17. 17

    在不知道其名称的情况下,逐行读取bash中的txt文件

  18. 18

    在不知道编码的情况下使用Python读取文件

  19. 19

    PHP-事先不知道文件夹名称的情况下读取它们

  20. 20

    在不知道Java中特定文件夹中的名称的情况下加载类

  21. 21

    在不知道其名称的情况下,逐行读取bash中的txt文件

  22. 22

    在不知道结构的情况下用python读取二进制文件

  23. 23

    ssis在不知道现有名称的情况下重命名文件

  24. 24

    在不知道索引的情况下从命令行参数打开文件?

  25. 25

    如何在不知道它是否为数组的情况下遍历JSON属性?

  26. 26

    如何在不知道对象名称的情况下返回Json objects子对象?

  27. 27

    如何在不知道键的情况下使用 javascript 从多级 JSON 中获取值

  28. 28

    在不知道名称的情况下扫描特定值的嵌套 json 响应

  29. 29

    是否可以在不知道每一列的宽度或列名并将其转换为CSV的情况下解析固定宽度的文件?

热门标签

归档