我在哪里可以通过PHP找到关于JSON的好视频或教程?

时间:2010-08-12 20:20:21

标签: php jquery json

我已多次搜索网络,很多JSON教程太难理解了。我正在寻找使用jQuery和PHP的JSON。如果有人知道任何视频或网站,我可以看到这将是伟大的

由于

3 个答案:

答案 0 :(得分:10)

什么是JSON以及如何创建JSON对象?

你唯一应该知道的是JSON实际上是Javascript代码。您可以使用字符串数字(以及数组和对象)等值创建数组对象

  • 您可以在数组中存储大量值,并以逗号分隔,如下所示:

    [12, "string", -30] // This is an array with 3 values

  • 您可以使用自己的密钥存储很多以逗号分隔的值,如下所示:

    {"key1": "value1", "key2": 234} // This is an object with two pair of keys and values

有趣的是,您可以将数组和对象用作值。因此,当您将上面学到的所有内容放在一起时,您可以获得如下的JSON代码:

{                  // Creates an object
    "key1": 12,    // with a key called "key1" and a number as value
    "key2": [      // and another key called "key2", with an new array as value
        10,        // the array has the number ten as first value
        "value"    // and a string containing "value" as its second value
    ]
}

我如何使用JSON?

您可以使用JSON作为在服务器和客户端之间传输数据的简单方法,例如Twitter API。

在客户端,您可以通过Javascript和AJAX发送和接收JSON数据。通常人们使用jQuery作为这个库,因为它有一些JSON验证的东西。在服务器端,您可以使用PHP作为作业将JSON数据转换为PHP对象。

您可以在Javascript中以这种方式访问​​值:

someArray[0]; // gives you access to the first value of an array
someObject.key; // gives you access to the value of an object with key 'key'

让我举个例子,你将打开flickr流:

// $.getJSON(url, dataHandlerFunction); to get JSON-data
// Add the first image of the Flickr stream to the page
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", 
  function(data){

    // In this function you can do anything with the JSON code, because it's transformed into a Javascript object
    // If you open the above URL in your browser, you see that it exists of and object with
    // a key called items. Within is an array of objects, representing images
    // let's add the first one to our page
    var firstImg = data.items[0]; // First object, with image data.

    $("<img/>").attr("src", firstImg.media.m).appendTo('body');
  }
);

在PHP中你几乎可以做同样的事情:

// Get the JSON code form Flickr
$contents = file_get_contents('http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?'); 

// Decode it to a PHP object
$flickrStream = json_decode($contents);

// Display the image
echo '<img src="' . $flickrStream->items[0]->media->m . '" />';

示例:在客户端和服务器之间传输数据

正如我所说,您可以使用AJAX在服务器和客户端之间发送数据。让我举几个简单的例子......你向服务器发送一些东西,服务器发回一些东西。

// Sends a GET request to the server
$.ajax({
  url: '/to/your/php/file/',
  dataType: 'json',
  data: {
    "name": "client"
  },
  success: function(data){
    alert(data.messageFromServer); // alerts "Hi back, 
  }
});

PHP文件(这种方式非常不安全,但这是一个简单的例子)

<?php
  // A GET request was send, so you can use $_GET
  echo '{
          "messageFromServer": "Hi back, ' . $_GET['name'] . '"
        }';
?>

答案 1 :(得分:1)

您只需要了解JSON是不同格式的数据。您可以轻松地将PHP数据结构转换为JSON(json_encode()),并解析JSON字符串(json_decode())。

检查PHP文档中的JSON(上面链接)和$ .ajax()的jQuery文档。

好的,有一个例子。

JavaScript:

$.ajax({
  url: 'json.php',
  success: function(data) {
    var ul = $('<ul></ul>');
    for(var i in data) {
      ul.append($('<li></li>')
          .append($('<strong></strong>').html(i))
          .append(': ')
          .append($('<span></span>').html(data[i]))
      );
    }
    $('body').append(ul);
  }
});

PHP文件:

<?php
$dbh = new PDO($connectionstring, $username, $password);
$response = array();
foreach($dbh->query('SELECT id, title FROM table ORDER BY id') as $record) {
  $response[$record['id']] = $record['title'];
}
print json_encode($response);

当jQuery代码运行时,它会从PHP文件中请求数据。 PHP文件获取一些内容并将其作为JSON代码打印。 响应返回,jQuery将JSON解析为数据并触发回调函数。

答案 2 :(得分:1)

不是特别是json + php,但是:Douglas Crockford - The JSON Saga