我只是想了解一下我对JSON的使用。
<?php
header('Content-Type: text/plain');
//results
$results = array();
for($i=0;$i<20;$i++)
{
$result = array();
$result['name'] = 'Test Season '.ceil(($i+1)/13).' Episode '.(($i%13)+1);
//$result['torrent'] = 'https://www.example.com/?id='.$i.'&key='.uniqid();
$result['torrents'] = array();
$c = mt_rand(1,4);
for($j=0;$j<$c;$j++)
{
$torrent = array();
$torrent['url'] = 'https://www.example.com/?id='.uniqid().'&key='.md5(uniqid());
$torrent['codec'] = $j%2 == 0 ? 'xvid' : 'h264';
$torrent['resolution'] = '720p';
$result['torrents'][] = $torrent;
}
$results[] = $result; //push
}
echo json_encode($results);
?>
这只是一些测试代码,而不是实际的实现。我是否正确使用JSON并且最全面?或者是一种更好的方法吗?
我有 legal 种子,我想用它做一些JSON。 Torrent按名称分组,其中包含多个种子(实际的数据链接)。以及其他信息,如编解码器等。
这是我第一次真正输出JSON,XML会更好吗?
是否有关于此主题的指南(希望不是整本书)?
感谢。
答案 0 :(得分:0)
你做的是对的。我喜欢使用StdClass来制作对象而不是键值数组,只是因为它看起来更性感! E.g。
$torrent = new StdClass();
$torrent->url = 'https://www.example.com/?id='.uniqid().'&key='.md5(uniqid());
$torrent->codec = $j%2 == 0 ? 'xvid' : 'h264';
$torrent->resolution = '720p';
$result['torrents'][] = $torrent;
正如你所说,你不需要阅读整本关于这个问题的书,我会在这里看看http://php.net/manual/en/book.json.php来掌握JSON的基础知识。
就JSON与XML而言,我发现将数据表示为JSON要容易得多,因为它更容易获取您想要的特定数据,就像访问stdClass对象中的信息一样。
<强> [编辑] 强> 正如Stefan Gehrig所说,请确保将您的内容类型定义为“application / json”。
答案 1 :(得分:0)
绝对没问题。您只能将MIME类型更改为符合RFC 4627:application/json
。