在PHP中解析JSON

时间:2011-12-15 15:58:54

标签: php json parsing

我有以下JSON字符串:

{"Data":{"Recipes":{"Recipe_5":{"ID":"5","TITLE":"Spaghetti Bolognese"},"Recipe_7":{"ID":"7","TITLE":"Wurstel"},"Recipe_9":{"ID":"9","TITLE":"Schnitzel"},"Recipe_10":{"ID":"10","TITLE":null},"Recipe_19":{"ID":"19","TITLE":null},"Recipe_20":{"ID":"20","TITLE":"Hundefutter"},"Recipe_26":{"ID":"26","TITLE":"Apfelstrudel"},"Recipe_37":{"ID":"37","TITLE":null},"Recipe_38":{"ID":"38","TITLE":"AENDERUNG"},"Recipe_39":{"ID":"39","TITLE":null},"Recipe_40":{"ID":"40","TITLE":"Schnitzel"},"Recipe_42":{"ID":"42","TITLE":"Release-Test"},"Recipe_43":{"ID":"43","TITLE":"Wurstel2"}},"recipes_id":{"ranking_1":"9","ranking_2":"10","ranking_3":"7","ranking_4":"5"}},"Message":null,"Code":200}

如何在PHP中解析它并提取TITLE的列表?

2 个答案:

答案 0 :(得分:3)

您可以使用function json_decode来解析PHP中的JSON数据(至少>> 5.2.0)。一旦你有了一个PHP对象,就可以很容易地迭代所有的食谱/成员并访问他们的标题,使用类似的东西:

$data = json_decode($json, true); // yields associative arrays instead of objects
foreach ($data['Data']['Recipes'] as $key => $recipe) {
    echo $recipe['TITLE'];
}

(抱歉,我现在无法实际运行此代码。希望它无论如何都有帮助。)

答案 1 :(得分:0)

如果你想在JavaScript中这样做,你可以简单地访问JSON数据,如“普通”对象:

var jsonData = {
    "Data": {"Recipes": {"Recipe_5": {"ID":"5","TITLE":"Spaghetti Bolognese"}}}
    // more data
};
alert(jsonData.Data.Recipes.Recipe_5.TITLE);

这将在消息框中打印TITLE Recipe_5

修改

如果你想要列表中的所有标题,你可以这样做:

var titles = [];
for (var key in jsonData.Data.Recipes) {
    var recipe = jsonData.Data.Recipes[key];
    titles.push(recipe.TITLE);
}
alert(titles);