2

我自己无法解决这个问题,也没有找到一些类似的问题。我有这个 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": {
        }
    }
}
}

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

提前致谢,

何塞

4

1 回答 1

2

如果你谷歌它,你可以找到几个结果:

  1. 属性树
  2. 使用上面的JSON 解析器
  3. 使用 JSON 解析器的示例

更新

尝试这个 :

BOOST_FOREACH(const ptree::value_type& child, node.get_child("life.fungi")) {
    std::cout
        << child.second.get<std::string>("sporeMass")
        << "\n";
}
于 2013-06-03T13:50:15.603 回答