我想在PHP中创建一个JSON API,但我不知道如何保持一个干净简单的代码。
基础应该是这样的,但仅仅通过创建一个虚拟对象来创建一个复杂的JSON似乎很难。
<?php
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);
?>
是否有比Zend Framework JSON Server更容易的库?
解决方案:
答案 0 :(得分:4)
您可以使用Simple JSON for PHP库。它会发送标题并使您能够根据自己的需要强制使用JSON。
看起来像:
<?php
include('../includes/json.php');
$json = new json();
$object = new stdClass();
$object->FirstName = 'John';
$object->LastName = 'Doe';
$array = array(1,'2', 'Pieter', true);
$jsonOnly = '{"Hello" : "darling"}';
$json->add('status', '200');
$json->add("worked");
$json->add("things", false);
$json->add('friend', $object);
$json->add("arrays", $array);
$json->add("json", $jsonOnly, false);
// This will output the legacy JSON
$json->send();
// This will output the array, omitting names
// $json->send_array();
?>
答案 1 :(得分:1)
我可以向您推荐PHP http://www.slimframework.com/
的Slim框架另外,您可能想了解一下RESTful API,我相信这是您想要实现的概念。 http://www.sitepoint.com/writing-a-restful-web-service-with-slim/
它非常轻巧且易于使用:
$app = new \Slim\Slim(array(
'debug' => true
));
$app->get('/clubs/', 'getClubs');
function getClubs()
{
global $entityManager;
global $app;
$club = $entityManager->find('Model\Club', 1);
$app->response->body(json_encode($club));
}