Разбор JSON в PHP - PullRequest
       5

Разбор JSON в PHP

0 голосов
/ 15 декабря 2011

У меня есть следующая строка 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 s?

Ответы [ 2 ]

3 голосов
/ 15 декабря 2011

Вы можете использовать функцию json_decode для анализа данных JSON в PHP (по крайней мере,> = 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'];
}

(Извините, я сейчас не могу запустить этот код. Надеюсь, он все равно поможет.)

0 голосов
/ 15 декабря 2011

Если вы хотите сделать это в 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 в окне сообщения.1006 *

РЕДАКТИРОВАТЬ:

Если вы хотите, чтобы все заголовки в списке, вы можете сделать что-то вроде этого:

var titles = [];
for (var key in jsonData.Data.Recipes) {
    var recipe = jsonData.Data.Recipes[key];
    titles.push(recipe.TITLE);
}
alert(titles);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...