Как бы вы преобразовали этот запрос JSON в новый вывод JSON в PHP? - PullRequest
0 голосов
/ 24 июня 2011

Я пытаюсь преобразовать запрос JSON в новый вывод JSON, потому что мне нужно переименовать некоторые переменные, используемые для работы в календаре. http://arshaw.com/fullcalendar/ В календаре был пример установки PHP для вывода JSON.

Как мне заставить SAMPLE.PHP отображать данные в виде цикла, преобразуя имена переменных в моем файле JSON в одинаковые имена?

SAMPLE.PHP = файл для настройки календаря JSON, который вызывается из Jquery

<?php

$year = date('Y');
$month = date('m');

echo json_encode(array(

    array(
        'id' => 111,
        'title' => "Event1",
        'start' => "$year-$month-10",
        'url' => "http://www.eventurl.com/1"
    ),

    array(
        'id' => 222,
        'title' => "Event2",
        'start' => "$year-$month-20",
        'end' => "$year-$month-22",
        'url' => "http://www.eventurl.com/2"
    ),

));

?>

РЕЗУЛЬТАТ:

[
{
    "id": 111,
    "title": "Event1",
    "start": "2011-06-10",
    "url": "http://www.eventurl.com/1"
},
{
    "id": 222,
    "title": "Event2",
    "start": "2011-06-20",
    "end": "2011-06-22",
    "url": "http://eventurl.com/2"
}
]

MYJSON = Я хотел бы получить свои собственные данные из собственного URL JSON вместо данных в примере создания PHP (но с сохранением структуры образца PHP). Вот результат моего запроса JSON, и я удалил много других строк, чтобы убрать беспорядок в этом посте (myUrl.json):

{
"events": [
    {
        "event": {

            "id": 1164038671,
            "title": "TestEvent",
            "start_date": "2011-06-24 13:00:00",
            "end_date": "2011-06-24 16:00:00",
            "url": "ttp://www.eventurl.com/1",

        }
    },
    {
        "event": {

            "id": 1163896245,
            "title": "Test",
            "start_date": "2011-07-14 13:00:00",
            "end_date": "2011-07-14 16:00:00",
            "url": "ttp://www.eventurl.com/2",

        }
    }
]
}

В качестве теста я могу получить значения, например, только для отображения:

<?php 

$string = file_get_contents('myUrl.json');
$json_a=json_decode($string,true);

// array method
foreach($json_a[events] as $p)
{
echo '
ID: '.$p[event][id].' <br/>
TITLE: '.$p[event][title].' <br/>
START DATE: '.$p[event][start_date].' <br/>
END DATE: '.$p[event][end_date].' <br/>
URL: '.$p[event][url].' <br/>

<br/><br/>
';

}
?>

1 Ответ

2 голосов
/ 24 июня 2011

Почему бы просто не декодировать входящий JSON, манипулировать им, чтобы он был тем, что вам нужно, затем кодировать JSON и распечатать его?

Если вам нужно переименовать переменные (или ключи), тогда установите переменную $tmp. То есть

$json_b['key2'] = $json_a['key1'];

Итак, я полагаю, ваш код будет выглядеть примерно так:

<?php 

    $string = file_get_contents('myUrl.json');
    $json_a=json_decode($string,true);
    $json_b = array();

    // array method
    foreach($json_a[events] as $p)
    {
        $json_b[event]['ID'] = $json_a[event][id];
        $json_b[event]['TITLE'] = $json_a[event][title];
        //and so on...
    }

    echo json_encode($json_b);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...