使用者工具

網站工具


webdesign:head_rush_ajax_7

Head Rush Ajax 讀書筆記

Chapter Five

JSON(JavaScript Object Notation)

http://www.json.com

JSON 只是用 JavaScript 表達某種物件。

比 XML 更像陣列。

大括號 {} 內包含無次序的值集合,中括號 [] 表示陣列。

“資料名”: 資料值

{"totals": [
  {
    "boardsSold": 1000,
    "bootsSold": 100,
    "bindingsSold": 10
  }
]};

每一橫排代表 totals[0]~totals[2],每欄資料代表 totals[i].bootsSold。

取出 “Two” 的方法:totals[2].location[1]

{"totals": [
  {"location":"Vail", "boardsSold":642, "bootsSold":86, "bindingsSold":19},
  {"location":"Santa Fe", "boardsSold":236, "bootsSold":45, "bindingsSold":32}
  {"location":["Vail", "Two"], "boardsSold":642, "bootsSold":86, "bindingsSold":19},
]};

JavaScript

function updatePage() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      // Get the updated totals from the JSON response
      var jsonData = eval('(' + request.responseText + ')');

      var totalBoards = jsonData.totals[0].boardsSold;
      var totalBoots = jsonData.totals[0].bootsSold;
      var totalBindings = jsonData.totals[0].bindingsSold;
......
}

PHP

使用陣列來建立 JSON 可用的資料

require_once('JSON.php');

$json = new Services_JSON();
$vail = array('location'     => 'Vail',
              'boardsSold'   => $vailBoards,
              'bootsSold'    => $vailBoots,
              'bindingsSold' => $vailBindings);
$santaFe = array('location'     => 'Santa Fe',
                 'boardsSold'   => $santaFeBoards,
                 'bootsSold'    => $santaFeBoots,
                 'bindingsSold' => $santaFeBindings);
$totals = array('totals' => array($vail, $santaFe));    // 二維陣列
$output = $json->encode($totals);    // 將 PHP 陣列轉成 JSON 結構
print($output);
webdesign/head_rush_ajax_7.txt · 上一次變更: 2007/03/04 17:07 由 wenpei