Heim  >  Artikel  >  Web-Frontend  >  Der Unterschied und die Verwendung zwischen JSON und JSONP

Der Unterschied und die Verwendung zwischen JSON und JSONP

一个新手
一个新手Original
2017-10-02 09:44:221561Durchsuche

Der Unterschied und die verschiedenen Verwendungen von json und jsonp
Obwohl es nur einen Buchstabenunterschied zwischen JSON (JavaScript Object Notation) und JSONP (JSON with Padding) gibt, sind sie eigentlich überhaupt nicht dasselbe: JSON ist ein Eine Art Datenaustauschformat, und JSONP ist ein inoffizielles domänenübergreifendes Datenaustauschprotokoll, das durch den Einfallsreichtum von Entwicklern entwickelt wurde. Nehmen wir als Vergleich den jüngsten beliebten Spionagefilm. JSON ist der „Code“, den Untergrundparteien zum Schreiben und Austauschen von Informationen verwenden, während JSONP die Verbindungsmethode ist, mit der in Code geschriebene Informationen an ihre Kameraden übertragen werden der Informationen, und das andere ist die von beiden Parteien vereinbarte Methode zur Übermittlung der Informationen.
Vorteile von JSON:
1. Basierend auf Klartext ist die plattformübergreifende Übertragung extrem einfach
2. Javascript wird nativ unterstützt und fast alle Backend-Sprachen werden unterstützt; Leichtes Datenformat, belegte Zeichen. Die Menge ist sehr gering und eignet sich besonders für die Internetübermittlung. Obwohl es nicht so klar ist wie XML, ist es nach angemessener Einrückung dennoch leicht zu identifizieren 5. Einfach zu schreiben und zu analysieren ist natürlich die Voraussetzung, dass Sie die Datenstruktur kennen müssen.
Natürlich weist JSON auch Mängel auf, aber nach Meinung des Autors sind sie wirklich irrelevant, also wird dies nicht der Fall sein gesondert erläutert werden.
JSON-Format oder -Regeln:


JSON kann die Datenstruktur auf sehr einfache Weise beschreiben. Es kann alles, was XML kann, daher gibt es keinen Unterschied zwischen den beiden im Hinblick auf die Überschneidung. Plattform. Gleichermaßen gleich.
1. JSON hat nur zwei Datentypdeskriptoren, geschweifte Klammern {} und eckige Klammern []. Definierer.
2. Geschweifte Klammern {} werden verwendet, um einen Satz „verschiedener Arten ungeordneter Schlüssel-Wert-Paarsätze“ zu beschreiben (jedes Schlüssel-Wert-Paar kann als OOP-Attributbeschreibung verstanden werden), und eckige Klammern [] werden verwendet um eine Reihe von „geordneten Datensammlungen desselben Typs“ zu beschreiben (die OOP-Arrays entsprechen können). 3. Wenn in den beiden oben genannten Sätzen mehrere Unterelemente vorhanden sind, sollten diese durch Kommas getrennt werden. 4. Die Schlüssel-Wert-Paare werden durch einen englischen Doppelpunkt getrennt: und es wird empfohlen, die Schlüsselnamen mit englischen doppelten Anführungszeichen „“ hinzuzufügen, um die Analyse verschiedener Sprachen zu erleichtern.
5. Häufig verwendete Datentypen in JSON sind nichts anderes als Zeichenfolgen, Zahlen, Boolesche Daten und Null. Zeichenfolgen müssen in doppelte Anführungszeichen gesetzt werden, der Rest wird nicht verwendet. Der Datumstyp ist also etwas ganz Besonderes Ich werde hier nicht auf Details eingehen. Ja, ich schlage nur vor, dass, wenn der Client nicht über die Funktion zum Sortieren nach Datum verfügt, das Datum und die Uhrzeit einfach direkt als Zeichenfolge übergeben werden, was eine Menge Ärger ersparen kann.



Der Generierungsprozess von JSONP:

1. Ein bekanntes Problem: Die direkte Ajax-Anfrage für normale Dateien hat das Problem des domänenübergreifenden unbefugten Zugriffs, unabhängig davon, ob Sie es sind eine statische Seite oder eine dynamische Webseite, Webdienste, WCF, solange es sich um eine domänenübergreifende Anfrage handelt, ist dies nicht zulässig
// 描述一个人 
    var person = {
    "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true
}
2. Wir haben jedoch auch festgestellt, dass beim Aufrufen von js-Dateien auf der Webseite es wird nicht davon beeinflusst, ob es domänenübergreifend ist (nicht nur das, wir haben auch festgestellt, dass alle Anfragen mit Tags mit dem Attribut „src“ über domänenübergreifende Funktionen verfügen, wie z. B. 3f1c4e4b6b16bbbd69b2ee476dc4f83a, a1f02c36ba31691bcfe87b2722de723b, e715207b25134a7a9c7c2d29f7300f17); Steuerelemente, serverseitige Proxys, Websockets, die zur Zukunft von HTML5 gehören, usw. sind nicht enthalten.) Es gibt nur eine Möglichkeit, domänenübergreifend auf Daten zuzugreifen, und das ist der Versuch, die Daten in eine Datei im js-Format zu laden auf dem Remote-Server für Client-Aufrufe und weitere Verarbeitung;

4. Wir wissen bereits, dass es ein reines Zeichendatenformat namens JSON gibt, das komplexe Daten prägnant beschreiben kann. Was noch besser ist, ist, dass JSON auch nativ unterstützt wird js, so dass dieses Format nahezu beliebig auf dem Client verarbeitet werden kann. 5. Auf diese Weise ist die Lösung fertig JSON als Suffix) auf genau die gleiche Weise wie das aufrufende Skript. Der Grund, warum die JSON-Datei dynamisch generiert wird, besteht offensichtlich darin, die vom Client benötigten Daten in sie zu laden.
6. Nachdem der Client die JSON-Datei erfolgreich aufgerufen hat, erhält er die benötigten Daten. Der Rest besteht darin, sie entsprechend seinen eigenen Anforderungen zu verarbeiten und anzuzeigen. Diese Methode zum Abrufen von Remote-Daten ähnelt AJAX sehr eigentlich nicht dasselbe.
7. Um dem Client die Nutzung von Daten zu erleichtern, hat sich nach und nach ein informelles Übertragungsprotokoll gebildet. Die Leute nennen es JSONP. Einer der wichtigsten Punkte dieses Protokolls besteht darin, Benutzern die Übergabe eines Rückrufparameters an den Server zu ermöglichen Anschließend gibt der Server die Daten zurück. Dieser Rückrufparameter wird als Funktionsname zum Umschließen der JSON-Daten verwendet, sodass der Client seine eigene Funktion anpassen kann, um die zurückgegebenen Daten automatisch zu verarbeiten.


Das obige ist der detaillierte Inhalt vonDer Unterschied und die Verwendung zwischen JSON und JSONP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn