PHP如何返回json格式的数据

我们常见一些网站在做ajax时返回JSON格式的数据:
PHP如何返回json格式的数据_第1张图片
返回的是json格式的数据

这有什么好处那?很显然前端在接到返回的数据时可以直接使用,而不用再用eval('(+ returnString +)') 或者 $.parseJSON(returnString ) (jQuery的函数)来转化为js对象,这样显然为用户省电了。。。
在网上搜索了一下,这个问题在搜索中文信息的时候比较少,一些说是返回json的都是在前端进行的转化处理,根本不是返回JSON格式,其实返回json相当的简单。

 

原来的数据就是JSON格式

下例来自《锋利的jQuery》:

$(function(){
         $('#send').click(function() {
              $.getJSON('http://blog.meituo.net/wp-content/uploads/php_return_json/test.js', function(data) {
                  $('#resText').empty();
                   var html = '';
                   $.each( data  , function(commentIndex, comment) {
                       html += '<div class="comment"><h6>' + comment['username'] +':</h6><p class="para">' + comment['content'] + '</p></div>';
                   })
                  $('#resText').html(html);
             })
        })
    })

你需要做的就是将数据存储为格式正确的 .json或者.js 文件。以下为示例所传送的json格式的数据

[
      {
        "username": "张三",
        "content": "沙发."
      },
      {
        "username": "李四",
        "content": "板凳."
      },
      {
        "username": "王五",
        "content": "地板."
      }
]

php输出JSON格式

那么php如何输出json格式?php 使用json_encode函数,然后jQuery使用datatype:json 就可以了嘛? 它的输出如下:

php 使用json_encode函数,jQuery使用datatype:json的返回类型


显然并非所愿。还是字符串,到底怎么实现?其实很简单,只要在php文件头部加入以下代码:

header('Content-type: text/json');

这个头就是告知此文件输出类型为 json,这种形式我们见的最多的是验证码——php输出验证图片,有时php可以输出css文件,js文件等做一些有趣的事情。好的,我们测试一下吧。

示例代码:

< ?php
    header('Content-type: text/json');
     
    $fruits = array (
        "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
        "numbers" => array(1, 2, 3, 4, 5, 6),
        "holes"   => array("first", 5 => "second", "third")
    );
    echo json_encode($fruits);
?>

 

 

你可能感兴趣的:(返回JSON)