json - 使用 Boost 从 JSON 遍历对象数组

标签 json boost

我无法自己解决这个问题,也没有找到类似的问题。我有这个 JSON:

{
"world": {
    "soil": {
        "dimensions": {
            "depth": "200",
            "length": "200",
            "width": "200",
            "cellSize": "1"
        },
        "moisture": {
            "min": "0",
            "max": "100",
            "initialPatches": "30",
            "initialPatchesMaxWidth": "100",
            "initialPatchesSigma": "3",
            "initialPatchesUseRandom": "true"
        },
        "nutrients": {
            "minC": "0",
            "maxC": "23",
            "minN": "0",
            "maxN": "23",
            "minP": "0",
            "maxP": "23"
        },
        "temperature": "25"
    },
    "life": {
        "fungi": [
            {
                "name": "fungus gungus",
                "sporeMass": "0.02"
            },
            {
                "name": "fungus gungusim",
                "sporeMass": "0.04"
            }
        ],
        "fungivores": {
        },
        "predators": {
        }
    }
}
}

我在尝试恢复两种不同真菌物种的信息时陷入停滞。我能够提取简单的参数,如深度、初始补丁等...但完全迷失了如何遍历所有真菌物种...有任何提示吗?

提前致谢,

何塞

最佳答案

如果你用谷歌搜索,你可以找到几个结果:

  1. property_tree
  2. JSON parser使用上面的
  3. example使用 JSON 解析器

更新

试试这个:

BOOST_FOREACH(const ptree::value_type& child, node.get_child("life.fungi")) {
    std::cout
        << child.second.get<std::string>("sporeMass")
        << "\n";
}

关于json - 使用 Boost 从 JSON 遍历对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16898185/

相关文章:

json - 当值包含ansible中的字符串时解析json值

java - 数组中的数组 - Java 代码

json - 如何在不消除对象歧义的情况下使用 circe 解码 ADT

java - 图像的自定义 ListView 适配器语法

c++ - boost::fast_pool_allocator 抛出访问冲突异常

c++ - boost::multi_index_container 复合键中的 equal_range 与比较运算符

ios - CoreData ManagedObject 和 App Model 交互

使用自定义函数的 C++ std::sort

c++ - 如何使用 CGAL::triangulate_polyhedron

c++ - boost::pool 中不需要模板参数