Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in JSON und Zusammenfassung der Nutzungscodes

伊谢尔伦
Freigeben: 2016-12-01 11:27:58
Original
1058 Leute haben es durchsucht

Was ist JSON?

JavaScript-Objektnotation.

JSON ist ein leichtes Datenaustauschformat. Das Innere einer JSON-Formatdatei kann so aussehen:

{
  "name": "hanzichi",
  "sex": "male"
}
Nach dem Login kopieren

Es sieht alles aus wie Schlüssel-Wert-Schlüssel. Ja, es sieht aus wie ein js Objekt, oder? Das ist richtig, aber gleichzeitig drückte JSON seine Unzufriedenheit aus. Ich muss meine eigene Persönlichkeit haben, daher muss der Schlüssel im Schlüssel-Wert-Paar doppelte Anführungszeichen verwenden. Gleichzeitig gelten bestimmte Anforderungen an den Wert des Schlüssel-Wert-Paares:

JSON-Wert kann sein:

Zahl (Ganzzahl oder Gleitkommazahl)

String (in in doppelten Anführungszeichen)

Logischer Wert (wahr oder falsch)

Array (in eckigen Klammern)

Objekt (in geschweiften Klammern)

null

Außer den oben genannten 6 Typen gibt es keine anderen. Es gibt kein undefiniertes oder NAN wie js, und JSON weigert sich, verwendet zu werden.

Wie verwende ich JSON?

JSON wird während des Dateninteraktionsprozesses im Allgemeinen in Form von Zeichenfolgen übertragen. Daher ist es für js besonders wichtig, wie JSON-Zeichenfolgen und js-Objekte ineinander und voneinander konvertiert werden.

eval method (json string -> js object)

var jsonStr = '{"name": "hanzichi", "sex": "male"}';
var ans = eval('(' + jsonStr + ')');
console.log(ans.name, ans.sex); // hanzichi male
Nach dem Login kopieren

Die eval-Funktion ist sehr schnell, kann aber jeden Javascript-Code kompilieren, was zu Sicherheitsproblemen führen kann. Die Verwendung von eval basiert auf der Annahme, dass die eingehenden Codeparameter zuverlässig sind. In einigen Fällen ist der Client möglicherweise nicht vertrauenswürdig. Aus Sicherheitsgründen ist es am besten, einen JSON-Parser zu verwenden. Ein JSON-Parser akzeptiert nur JSON-Text und ist daher sicherer.

JSON.parse (json string -> js object)

var jsonStr = '{"name": "hanzichi", "sex": "male"}';
var obj = JSON.parse(jsonStr);
console.log(typeof obj, obj); // object Object {name: "hanzichi", sex: "male"}
Nach dem Login kopieren

Der zweite Parameter kann eine Funktion sein und der Wert kann gelöscht werden:

var jsonStr = '{"name": "hanzichi", "sex": "male", "age": 10}';
var obj = JSON.parse(jsonStr, function(key, value) {
  if(key === 'name') {
    return 'my name is ' + value;
  }
  return value;
});
console.log(typeof obj, obj); // object Object {name: "my name is hanzichi", sex: "male", age: 10}
Nach dem Login kopieren

JSON.stringify (js object-> json string)

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr);  // {"name":"hanzichi","sex":"male","age":"10"}
Nach dem Login kopieren

Sie können auch einen Parameter hinzufügen, um die Attribute anzugeben, die in einen JSON-String konvertiert werden müssen (in Array-Form das js-Objektattribut). mit dem gleichen Namen wie das Array, das konvertiert wird):

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, ['name']);
console.log(jsonStr);  // {"name":"hanzichi"}
Nach dem Login kopieren

Der zweite Parameter kann auch eine Funktion sein, Sie können das Attribut, das die Bedingungen erfüllt, löschen (oder ändern). Der Attributwert, keine Rückgabe bedeutet, dass das Attribut aufgegeben wird, der Rückgabewert stellt den Wert des Schlüssels in der JSON-Zeichenfolge dar)

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, function(key, value) {
  if(key === 'name') {
    return 'my name is ' + value;
  }
  return value;
});
console.log(jsonStr);  // {"name":"my name is hanzichi","sex":"male","age":"10"}
Nach dem Login kopieren

Es kann auch einen dritten Parameter geben, der ein sein kann Zahl oder eine Zeichenfolge.

Wenn es sich um eine Zahl handelt, bedeutet dies eine Einrückung. Wenn die Zahl 10 überschreitet, wird sie als 10 verarbeitet.

var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, null, 4);
console.log(jsonStr); 
// {
//     "name": "hanzichi",
//     "sex": "male",
//     "age": "10"
// }
Nach dem Login kopieren

kann auch eine Zeichenfolge sein. Diese Zeichenfolgen werden vor den Attributen als Präfixe hinzugefügt. Wenn die Zeichenfolgenlänge 10 überschreitet, werden ebenfalls nur 10 abgefangen:

 var obj = {name: 'hanzichi', sex: 'male', age: '10'};
var jsonStr = JSON.stringify(obj, null, 'pre');
console.log(jsonStr); 
// {
// pre"name": "hanzichi",
// pre"sex": "male",
// pre"age": "10"
// }
Nach dem Login kopieren

Zusammenfassung

Natürlich kann der legendäre IE8 (und darunter) aufgrund einiger Fehler die Methoden JSON.parse() und JSON.stringify() nicht verwenden, und es erscheint eval() unsicher sein. Wenn Sie mit ihnen kompatibel sein möchten, können Sie json2.js zitieren.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!