程序员人生 网站导航

PHP如何返回json格式的数据给jquery

栏目:php教程时间:2014-01-15 01:40:56

json格式的数据是我们在应用开发中一直会使用到的数据,如与jquery打交到或与api打交都会使用到json数据,那么PHP如何返回json格式的数据给jquery呢,下面我来给各位同学介绍介绍.

在jquery中操作json数据我们直接 $.parseJSON(returnString ) 了

实例代码如下:

  1. $(function(){ 
  2.      $('#send').click(function() { 
  3.           $.getJSON('test.js'function(data) { 
  4.               $('#resText').emptyempty(); 
  5.    var html = ''
  6.    $.each( data  , function(commentIndex, comment) { 
  7.     html += '<div class="comment"><h6>' + comment['username'] + ':</h6><p class="para">' + comment['content'] + '</p></div>'
  8.    }) 
  9.   $('#resText').html(html); 
  10.          }) 
  11.     }) 
  12. }) 

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

实例代码如下:

  1.   { 
  2.     "username""张三"
  3.     "content""沙发." 
  4.   }, 
  5.   { 
  6.     "username""李四"
  7.     "content""板凳." 
  8.   }, 
  9.   { 
  10.     "username""王五"
  11.     "content""地板." 
  12.   } 

上面讲到到的json数据是固定了,我们用php如何返回json数据呢

php输出JSON格式方法

页面中加入header('Content-type: text/json');这个头就是告知此文件输出类型为 json,这种形式我们见的最多的是验证码——php输出验证图片,有时php可以输出css文件,js文件等做一些有趣的事情.好的,我们测试一下吧

实例代码如下:

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

从数据库读取的数据生成json格式

实例代码如下:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <title>第一php网提供的教程--将数据库读取的数据生成json格式</title> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  6. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"/></script> 
  7. <script language=javascript> 
  8. </script> 
  9. </head> 
  10. <body> 
  11. <pre> 
  12. <h1>请注意两种方法生成的对象数组在结构上的区别</h1> 
  13. <?php 
  14. echo '<h1>法一</h1>'
  15. //假设以下数组是根据我们从数据库读取的数据生成的 
  16. $jarr=array('total'=>239,'row'=>array
  17.            array('code'=>'001','name'=>'中国','addr'=>'Address 11','col4'=>'col4 data'), 
  18.            array('code'=>'002','name'=>'Name 2','addr'=>'Address 12','col4'=>'col4 data'), 
  19.                                      ) 
  20.            ); 
  21. //法一: 
  22. $jobj=new stdclass();//实例化stdclass,这是php内置的空类,可以用来传递数据,由于json_decode后的数据是以对象数组的形式存放的, 
  23. //所以我们生成的时候也要把数据存储在对象中 
  24. foreach($jarr as $key=>$value){ 
  25. $jobj->$key=$value
  26. print_r($jobj);//打印传递属性后的对象 
  27. echo '使用$jobj->row[0]['code']输出数组元素:'.$jobj->row[0]['code'].'<br>'
  28. echo '编码后的json字符串:'.json_encode($jobj).'<br>';//打印编码后的json字符串 
  29. //法二: 
  30. echo '<hr>'
  31. echo '<h1>法二</h1>'
  32. echo '编码后的json字符串:'
  33. echo $str=json_encode($jarr);//将数组进行json编码 
  34. echo '<br>'
  35. $arr=json_decode($str);//再进行json解码 
  36. print_r($arr);//打印解码后的数组,数据存储在对象数组中 
  37. echo '使用$arr->row[0]->code输出数组元素:'.$arr->row[0]->code; 
  38. ?> 
  39.  
  40. </body> 
  41. </html> 
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐