我已多次搜索网络,很多JSON教程太难理解了。我正在寻找使用jQuery和PHP的JSON。如果有人知道任何视频或网站,我可以看到这将是伟大的
由于
答案 0 :(得分:10)
你唯一应该知道的是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作为在服务器和客户端之间传输数据的简单方法,例如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