JSON PHP:这是正确的方法吗?

时间:2011-04-19 09:20:29

标签: php json

我只是想了解一下我对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会更好吗?

是否有关于此主题的指南(希望不是整本书)?

感谢。

2 个答案:

答案 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 4627application/json