Could you please tell me, what is the use of JSON (in Javascript and PHP). when we need a JSON method.
Ben herhangi bir proje üzerinde JSON uygulanmasına ilişkin herhangi bir bilgi alamadım, aşağıdaki linkten okuyun ama.
İsmine rağmen, JSON formatında başlıca amaçlarından biri AJAX web geliştirme ise (kesinlikle tek gerçi). Bu sık sık hafif sözdizimi için geleneksel XML tercih edilir.
JSON veri iletiminde kullanılan veri biçimidir. Bu Javascript AJAX çağrıları öncelikle kullanılır.
Değer çiftleri: json yapısı sadece ismini parantez olduğunu. Değer çiftleri: çünkü o adı içine gruplandırılmış olabilir nispeten küçük veri setlerinin ve şeylerin iletimi için daha iyi bir yapı bulunuyor kompakt yapısı ve basitlik.
Örneğin:
Dönüştürme ve JSON veri alan bir prototype.js Ajax arama:
my_prototype_class = Class.create();
my_prototype_class.prototype = {
initialize: function() {
this.myarray = new Array();
//do initialization
},
my_function: function(direction){
new Ajax.Request('/my/url.php',
{
method: 'post',
parameters: { name: value,
myarray_data: this.myarray.toJSON() },
onSuccess: function(transport) {
var response = transport.responseText.evalJSON();
//handle response
},
onFailure: function(){
//handle failure
}
});
}
}
Event.observe(window, "load", function(){new my_prototype_class();}, false);
Ve PHP kullanarak böyle bir şey ile isteği işlemek istiyorum:
function my_php_handler()
{
#parse POST data
$name = $_POST["name"];
$myarray_data = $_POST["myarray_data"];
#transform the data in some way
#return encoded string
echo json_encode($results);
}
Gibi bir şey:
[{"myarray": [], "name": value}]
http istek / yanıt etrafında geçti alacak. Bu veriler format JSON olarak adlandırılır.
JSON JavaScript ve PHP arasında ileri ve geri veri aktarımı için bir büyük bir biçimdir. Benim en yaygın kullanımı durum iletileri içindir.
Burada küçük bir PHP komut dosyası için bir Ajax sorgu yapmak için bazı JavaScript bulunuyor.
new Ajax.Request('dostuff.php', {
method: 'get',
parameters: {'param1': 'this is param 1'},
onSuccess: function(response, jsonHeader){
if(jsonHeader['status'] == 'Success'){
//Everything is OK, do stuff
}else{
alert(jsonHeader['status']);
}
},
onFailure: function(){
alert('Fail!');
}
});
Ardından, PHP tarafında, böyle bir şey olabilir:
$jsonHeader = array();
if($_REQUEST['param1'])
{
echo '<p>You passed ' . $_REQUEST['param1'] . '</p>';
$jsonHeader['status'] = 'Success';
}else
{
$jsonHeader['status'] = 'Failed because the request was invalid';
}
if(is_array($jsonHeader) and sizeof($jsonHeader) > 0)
{
header('X-JSON: (' . json_encode($jsonHeader) . ')');
}
Düzgün bir şey olduğunu Prototip automatically decodes PHP yaratıyor X-JSON başlık.
Sonuç JavaScript onSuccess yöntemin jsonHeader bağımsız otomatik PHP $ jsonHeader dizisi ile aynı veri var: bir dizi dönüştürülür olmasıdır
JSON nispeten hafif veri alış biçimi (en azından kıyasla XML ya da HTML) ve bir web istemcisi ve web sunucusu / servis arasında küçük miktarlarda veri alışverişi yaparken en çok yararlıdır.
Ancak nedeniyle alışverişinde satır başına onun havai, büyük veri listelerini alışverişi için en iyi seçenek (XML çok daha iyi olsa da) değildir.
JavaScript kodu ile (yani tarayıcınızda bir Ajax çağrısı yoluyla) alınan verileri manipüle ihtiyacı varsa ben JSON kullanarak öneririm. Doğrudan JavaScript içine yüklemek ve (bu nedenle Java Script Nesne Gösterimi => json) kullanabilirsiniz beri böyle bir durumda JSON çok rahat. Bu JavaScript nesneleri JSON dize seri kaldırma denir. Hangi Ancak, eval () işlevini kullanarak yapılabilir - okudum -, bazı güvenlik sorunları teşkil bazı json niçin (de) seri kullanılmalıdır.
Açıklandığı gibi page Eğer bazı JSON dize gibi olması söz
{"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
}
daha sonra bir geri arama (yani. Net) gibi çağrılır istemci üzerinde Ajax çağrısı bazıları tarafından başlatılan, ağ üzerinden gönderilen hangi
function onSuccess(result){
var myObj = Sys.Serialization.JavaScriptSerializer.deserialize(result, false);
myObj.bindings[0].ircEvent...
}
Ajax ile çoğunlukla web geliştirme, JavaScript kullanarak avantaj beraber sadece kolay (de) serileştirme olduğunu. Aksi takdirde ben gerçekten JSON kullanmak istiyorum ama masaüstü için gerçekten güçlü ayrıştırma kütüphaneler bulunmaktadır apps beri oldukça XML güveniyor.
Diğer tüm yanıtları büyük, ancak özel durum (JavaScript + PHP) için belki basit açıklama: JSON is the easiest way to translate a JavaScript object into a PHP associative array or object (and vice-versa).
json_encode() bir göz atın ve json_decode() şeyler PHP tarafında için. JavaScript tarafta basit bir eval () JSON dize bir nesneyi almak için en kolay (ama en güvenli!) Bir yoldur, ancak seçtiğiniz kütüphane kesinlikle sizin için bu dikkat çekmek için işlevlere sahip olacak, ve eğer Eğer ECMAScript 5 JSON object kullanabilirsiniz yeni tarayıcılarını hedef alıyorlar.