在PHP中创建基本JSON API

时间:2015-05-17 15:18:30

标签: php json api

我想在PHP中创建一个JSON API,但我不知道如何保持一个干净简单的代码。

基础应该是这样的,但仅仅通过创建一个虚拟对象来创建一个复杂的JSON似乎很难。

<?php
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);
?>

是否有比Zend Framework JSON Server更容易的库?

解决方案:

2 个答案:

答案 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));
}