我正在尝试将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/>
';
}
?>
答案 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);
?>