PHP JSON資料的建立和解析程式代碼

來源:互聯網
上載者:User

具體操作

JSON是什嗎?

JSON一種用於在互連網絡中傳輸超量資料的資料交換格式。雖然在Internet中交換資料XML佔主要地位,然而JSON卻更加的簡單並且適用於輕型的資料。

儘管JSON當初是被JavaScript發明並且用於訪問遠端資料的,它現在卻被廣泛適用於各種語言,因為JSON是一種於平台無關的資料格式。

JSON資料的資料類型和執行個體

JSON支援各種各樣的資料類型,包括數字、字串、布爾值、數組資料甚至對象資料(是一個集合,每個元素都是鍵:值對形式,使用逗號分隔,並且使用大括弧包裹)。

讓我們看一個JSON資料的簡單例子,該例子表示一個僱員的詳細資料:

 代碼如下 複製代碼

{“id”:”1″,”name”:”mike”,”country”:”usa”,”office”:["microsoft","oracle"]}

使用PHP建立和解析JSON資料的方法

PHP從5.2.0版本以後提供了JSON擴充來處理JSON資料,通過PHP有兩個函數json_encode()和json_decode非常方便的對JSON資料進行轉換和解析。

首先,讓我們看一段PHP用數組建立如上各式的JSON的代碼:

 代碼如下 複製代碼

$json_data = array ('id'=>1,'name'=>"mike",'country'=>'usa',"office"=>array("microsoft","oracle"));  echo json_encode($json_data);


該代碼直接產生了JSON資料。現在讓我們用PHP將上面的JSON解碼:

 代碼如下 複製代碼

$json_string='{"id":1,"name":"mike","country":"usa","office":["microsoft","oracle"]} ';  $obj=json_decode($json_string);

現在變數$obj包含了使用PHP解析後的JSON資料,你可以使用以下的方法來輸出和訪問:

 代碼如下 複製代碼

echo $obj->name; //displays mike  echo $obj->office[0]; //displays microsoft


你猜的沒錯$obj->office是一個數組,你能夠使用PHP的foreach方法遍曆它:

 代碼如下 複製代碼

foreach($obj->office as $val)      echo $val;

ajax時返回JSON格式的資料


原來的資料就是JSON格式
下例來自《鋒利的jQuery

 代碼如下 複製代碼


$(function(){
     $('#send').click(function() {
          $.getJSON('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檔案頭部加入以下代碼:

 代碼如下 複製代碼


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);
?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.