你如何将这个JSON请求转换为PHP中的新JSON输出?

时间:2011-06-23 22:16:50

标签: php html json

我正在尝试将JSON请求转换为新的JSON输出,因为我需要重命名一些正在使用的变量才能在日历中工作。 http://arshaw.com/fullcalendar/日历附带了一个示例PHP设置,用于输出JSON。

我如何让SAMPLE.PHP将数据作为循环转换回来,将我JSON文件中的变量名转换为具有相同的名称?

SAMPLE.PHP =设置从Jquery调用的Calendar JSON的文件

<?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 =我想从我自己的JSON url中提取自己的数据,而不是样本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 个答案:

答案 0 :(得分:2)

为什么不解码传入的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);

?>