In Bezug auf Format, Dateityp und praktische Verwendung?
Dieser Link ist nicht mehr gültig
In Bezug auf Format, Dateityp und praktische Verwendung?
JSON
JSON (JavaScript-Objekt-Notation) ist ein bequemer Weg, um Daten zwischen Anwendungen zu transportieren, insbesondere wenn das Ziel eine JavaScript-Anwendung ist.
Exemple :
Hier ist ein minimales Beispiel, das JSON als Transportmittel für die Serverantwort verwendet. Der Client stellt eine Ajax-Anfrage mit der jQuery-Shorthand-Funktion $.getJSON. Der Server generiert einen Hash, formatiert ihn als JSON und gibt ihn an den Client zurück. Der Client formatiert diesen und fügt ihn in ein Seitenelement ein.
Server:
get '/json' do
content_type :json
content = { :response => 'Sent via JSON',
:timestamp => Time.now,
:random => rand(10000) }
content.to_json
end
Kunde:
var url = host_prefix + '/json';
$.getJSON(url, function(json){
$("#json-response").html(JSON.stringify(json, null, 2));
});
Ausgabe:
{
"response": "Sent via JSON",
"timestamp": "2014-06-18 09:49:01 +0000",
"random": 6074
}
JSONP (JSON mit Auffüllung)
JSONP ist eine einfache Möglichkeit, Browser-Beschränkungen beim Senden von JSON-Antworten aus verschiedenen Domänen vom Client aus zu umgehen.
Die einzige Änderung auf der Client-Seite mit JSONP ist das Hinzufügen eines Callback-Parameters zur URL
Server:
get '/jsonp' do
callback = params['callback']
content_type :js
content = { :response => 'Sent via JSONP',
:timestamp => Time.now,
:random => rand(10000) }
"#{callback}(#{content.to_json})"
end
Kunde:
var url = host_prefix + '/jsonp?callback=?';
$.getJSON(url, function(jsonp){
$("#jsonp-response").html(JSON.stringify(jsonp, null, 2));
});
Ausgabe:
{
"response": "Sent via JSONP",
"timestamp": "2014-06-18 09:50:15 +0000",
"random": 364
}
"JSONP ist JSON mit zusätzlichem Code" wäre zu einfach für die reale Welt. Nein, man muss kleine Unstimmigkeiten haben. Wo bleibt der Spaß am Programmieren, wenn alles funktioniert einfach ?
Es stellt sich heraus JSON ist keine Teilmenge von JavaScript . Wenn Sie nur ein JSON-Objekt nehmen und es in einen Funktionsaufruf verpacken, werden Sie eines Tages von seltsamen Syntaxfehlern heimgesucht, so wie ich heute.
JSONP ist eine einfache Möglichkeit, Browser-Beschränkungen beim Senden von JSON-Antworten aus verschiedenen Domänen vom Client aus zu umgehen.
Bei der praktischen Umsetzung des Konzepts gibt es jedoch subtile Unterschiede, die oft nicht klar erläutert werden.
Hier ist ein einfaches Tutorial, das JSON und JSONP Seite an Seite zeigt.
Der gesamte Code ist auf Github frei verfügbar und eine Live-Version findet sich unter http://json-jsonp-tutorial.craic.com
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
14 Stimmen
Véase Bitte erklären Sie JSONP .
4 Stimmen
Ist eine Methode schneller als die andere? Zum Beispiel, wenn Sie XMLHttpRequest verwenden, um eine Anforderung zu erhalten (an die gleiche Domäne natürlich, da es "normale" Ajax), oder wenn Sie die JSONP-Methode verwenden (die nicht die XMLHTTPRequest verwenden wird) - wird eine schneller als die andere sein? Ich weiß, dass es von verschiedenen Faktoren abhängt - aber hat jemand Geschwindigkeitsvergleiche angestellt?