Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erklärung, wie js/jquery JSON- und Array-Formate analysiert

Detaillierte Erklärung, wie js/jquery JSON- und Array-Formate analysiert

高洛峰
高洛峰Original
2017-02-17 16:49:231103Durchsuche

Vor dem Parsen müssen wir mehrere Konzepte klären: Was sind die Unterschiede und Kontaktpunkte zwischen Arrays, assoziativen Arrays und JSON?

1. Einführung in Konzepte
1. Array

Syntax:
ECMAScript v3 spezifiziert die Syntax von Array-Literalen und wird von JavaScript 1.2 und JScript 3.0 implementiert. Sie können ein Array erstellen und initialisieren, indem Sie eine durch Kommas getrennte Liste von Ausdrücken in eckige Klammern setzen. Die Werte dieser Ausdrücke werden zu Array-Elementen. Zum Beispiel:

var a = [1, true, 'abc'];

Spezifische Vorgänge finden Sie in der API.

ps: muss durch eckige Klammern getrennt werden.

2. Assoziatives Array

1. Syntax:
var myhash= {“key1″:“val1″, „key2“:“val2″ };//obj

2.var
myhash= {key1:“val1″, key2:“val2″};//obj-can also

ps: fast das gleiche wie das JSON-Format, aber das JSON-Format hat Weitere Anforderungen: Streng (die darin enthaltenen Schlüssel-Wert-Paare müssen doppelte Anführungszeichen verwenden), JSON kann jedoch nur als Formatstandard verwendet werden. Wenn Sie damit arbeiten möchten, müssen Sie es in ein assoziatives Array-Objekt (obj) konvertieren.

2. Einfache Operation
1. Schlüsselwert zum Hash-Assoziativarray hinzufügen

// Einen neuen Schlüssel newkey hinzufügen, der Schlüsselwert ist newval

myhash[“ newkey ”] = „newval“;

2. Löschen Sie vorhandene Schlüsselwerte im Hash-Assoziativ-Array

// Löschen Sie einen Schlüssel newkey und gleichzeitig den entsprechenden newval der Schlüsselwert verschwindet
delete myhash[“newkey“];

3. Durchlaufen Sie das Hash-Assoziativ-Array

// Durchlaufen Sie das gesamte Hash-Array
for (key in myhash ) {
val = myhash[ key];
}

4. Wert abrufen

Methode 1.myhash.key1
Methode 2.myhash.key2

3.json
Formatanforderungen:

{“key1″:“val1″, „key2″:“val2″ };// Halten Sie sich strikt an dieses Format, und die Operation kann darauf basieren der Betrieb assoziativer Arrays

2. Vorherige Mehrere wichtige Punkte in der Hintergrundinteraktion
1 Wenn es sich bei den vom Server gesendeten Daten nicht um einen JSON, sondern um mehrere JSONs handelt, sollte die Zeichenfolge durch Kontaktaufnahme mit Arrays zusammengestellt werden Assoziative Arrays
Zum Beispiel: var objs = [{ id : 1, name: 'n_1' }, { id: 2, name: 'n_2'}];

2. Die vom Server an den Client gesendeten Daten sind nur eine Zeichenfolge. Um dies zu ermöglichen, führen Sie die erforderlichen Vorgänge in js aus und konvertieren Sie sie über eval () in ein ausführbares js-Objekt.
Daher weist die in jQuey bereitgestellte Funktion $.parseJSON() Einschränkungen auf. Wenn es sich um die in 1 oben erwähnte Situation handelt, müssen Sie eval() für die Konvertierung verwenden und dann $.each(objs,function(i ,o ){...}) zur Bedienung von

3. Spezifischer Beispielcode
Seitencode:

<body>
 <input type="button" value="send ajax json" onclick="sendAjaxByjson();"/>
 <input type="button" value="send ajax array" onclick="sendAjaxByarray();"/>
</body>
 <script type="text/javascript">
  function sendAjaxByjson(){
   $.post("json",{},function(data){
    var obj=data;
    alert(typeof obj);//string
    //var a=eval(obj);不解,不注释则会报错..
    var strToobj=$.parseJSON(obj);
    alert(strToobj.name);
    alert(typeof strToobj)//obj
    var obja={'name':'techbirds','age':'23','sex':'male'};
    alert(typeof obja);//obj
    alert(obja['name']+":"+obja.age);
    delete obja['name'];
   });
  }
  function sendAjaxByarray(){
   $.post("array",{},function(data){
    var str=data;
    alert(typeof str);//string
    alert(typeof eval(str));//object
    var obja=[1,2,3,4,5];
    alert(typeof obja);//object
   });
  }
 </script>


Backend-Code:

@Override
 protected void service(HttpServletRequest req, HttpServletResponse reps)
   throws ServletException, IOException {
  Map<String, Object> jsonMap=new HashMap<String, Object>();
  jsonMap.put("name", "techbirds");
  jsonMap.put("age", 23);
  jsonMap.put("sex", "male");
  reps.getWriter().print(JSONObject.fromObject(jsonMap).toString());
  reps.getWriter().flush();
  reps.getWriter().close();
 }
 @Override
 protected void service(HttpServletRequest req, HttpServletResponse reps)
   throws ServletException, IOException {
  String array="[1,2,3,4,5,6]";
  reps.getWriter().print(array);
  reps.getWriter().flush();
  reps.getWriter().close();
 }

Ausführlichere Erklärungen, wie js/jquery JSON- und Array-Formate analysiert, finden Sie auf der chinesischen PHP-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