使用php获取json模式上的所有元素


Getting all elements on a json schema using php

我真的需要帮助。

我有以下Json模式:

{
    "url": "http://www.google.com",
    "bodySchema": {
        "type": "object",
        "properties": {
            "SKU": {
                "sync": "True",
                "mapTo": "SKU",
                "type": "string"
            },
            "WareHouseId": {
                "sync": "False",
                "mapTo": "",
                "type": "integer"
            },
            "Stock": {
                "sync": "True",
                "mapTo": "Stock",
                "type": "integer"
            }
        },
        "required": {
            "0": "SKU",
            "1": "Stock"
        }
    }
}

我想检索所有元素,并检查它们是否需要,

第一部分(获取所有元素)

我正在做的是:

foreach ($this->methods as $data) {
    if(!empty($data['bodySchema']->properties)){
    }
}

但我的问题是,我无法获得SKU、仓库ID或库存,因为它既不是钥匙,也不是任何类似的东西。

对于我的第二个问题,我想的是把所有需要的东西都作为字符串,并对它们进行循环,但如果有其他选择,我很乐意知道。

您可以通过一个简单的循环获得属性:

foreach ($data->bodySchema->properties as $key => $value) {
    // ..
}

如果你想在上面的结果中添加所需的字段,你可以这样做:

foreach ($data->bodySchema->required as $required) {
    $data->bodySchema->properties->$required->required = true;
}

对象或数组的示例。