JSON кормит контекст в Drupal 7

Я пытаюсь подключиться к веб-сервису REST с помощью Drupal 7. Данные поступают через URL, и я хочу перетащить их на сайт D7 для создания и заполнения узлов. Я использую модуль каналов для отображения содержимого и анализатор JSONPath в качестве анализатора. Я также включил модуль Feeds HTTPFetcher Append Headers, чтобы я мог добавлять собственные заголовки, чтобы убедиться, что это возвращаемый JSON, а не плохо отформатированный xml, который я получал раньше.

Пользовательские заголовки:

Accept|application/json
Content-Type|application/json

У меня есть URL, который выглядит как http://192.136.0.31:8080/places/getAll

В дополнение к вышесказанному у меня есть модуль Devel, который возвращает массив каналов на странице, используя приведенный ниже код в моем template.php:

$request = drupal_http_request('http://192.136.0.31:8080/places/getAll', $options);
dpm(drupal_json_decode($request->data));

Вот что возвращает Devel:

... (Array, 1192 elements)
   0 (Array, 17 elements)
      Address1 (String, 19 characters ) 1-2 The Road name
      Address2 (String, 9 characters ) Shuinnad

Проблема, которую я имею, состоит в том, чтобы включить это в каналы и сопоставление с соответствующими полями. Я не знаю, что должно идти в поле контекста - я пытался $...*, $.*, $... [*] но не повезло.

Когда я щелкаю по элементу Array из вывода devel, он показывает $...[0]['Address1'], который предполагает, что это должен быть контекст - не повезло.

Быстрое обновление - используя функцию drupal_json_decode, я могу разбить массив так, как мне нужно, используя php

foreach ($json as $section => $items) {
foreach ($items as $key => $value) {
    //if ($key == 'Address1') {
    echo "$section:\t$key\t:&nbsp;$value<br>";
    //}
    // check whether the current item is an array!
    if(is_array($value)) {
        echo "$key is sub array:<br />";
        foreach($value as $subKey => $subValue)
            echo "$subKey:\t$subValue<br />";
    }
}
}

Вопрос все еще стоит, как мне воспроизвести это в Feeds, используя парсер JSON?

2 ответа

Посмотреть этот урок

Контекст: где вы помещаете выражение JSONPath, представляющее путь к массиву, представляющему ваши данные. Например, в моем файле это будет $.albums.data.*. Если бы это был массив PHP, это было бы в основном

foreach($facebook['album']['data'] как $value);

Возможно, вам придется попробовать этот модуль: Feeds JSONPath Parser

Другие вопросы по тегам