JSON String Parsing in Javascript?

Ich benutze ajax, um eine Anfrage an einem Servletand zu erhalten und json String zu erhalten

Servlet-Code // Server-Seite

  • Ajax Post auf PHP auf der gleichen Seite nicht funktioniert
  • Immer noch Probleme beim Zurückgeben von Wert durch Funktion
  • Wie man Binärdaten als Bild anzeigt - extjs 4
  • Google Maps - Mehrere Marker von extern json
  • Throttle AJAX Anforderung auf KeyUp und Paste Events
  • Führen Sie AJAX-Anforderung aus, bevor Sie mit der Standardaktion fortfahren
  • protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Content-Type", "text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); Gson gson = new Gson(); try { ArrayList<SearchedCourse> searchedCourses = null; int semesterNo = request.getParameter("semesterNo"); searchedCourses = //Using function to retrieve data from DB and return an ArrayList String courses = gson.toJson(searchedCourses); out.write(courses); } } } finally { out.close(); } } 

    Und das ist die Rückkehr json string "Ich habe Firebug verwendet, um es zu kopieren"

     [{"courseNumber":1619,"courseNo":"HADTA1100","courseName":"قرآن كريم (1) جزء عم","courseExamDate":"Aug 21, 2011","courseExamTimeFrom":"14:30","courseExamTimeTo":"15:30"},{"courseNumber":1663,"courseNo":"HADTB1100","courseName":"قرآن كريم (2) جزء تبارك","courseExamDate":"Aug 23, 2011","courseExamTimeFrom":"14:30","courseExamTimeTo":"15:30"}] 

    Ich benutze den Code unten, um die Json-String auf der Client-Seite zu analysieren

      jQuery.ajax({ url: 'auth/json/AvailableCoursesGetter', type: "GET" , dataType: "json", data: { 'semesterNo': 20112 }, success: function(data) { for (var i = 0, len = data.length; i < len; i++) { document.write(data[i].courseNumber); } } }); 

    Es funktioniert gut auf Mozilla FireFox4, aber auf Google Chrome und IE zeigt es nichts

    irgendeine Hilfe ?

  • AJAX mit jQuery - Syntaxfehler?
  • $ .ajax () Anruf, nur bei der Aktualisierung
  • Initialisierung von Vue-Daten mit AJAX
  • Methode POST, Status (abgebrochen) Fehlermeldung
  • Ajax Abfrage auf meine Webservices ist die Rücksendung von xml in meinem json
  • So verwenden Sie AJAX, um Daten aus der DB zu erhalten und auf Seite
  • 3 Solutions collect form web for “JSON String Parsing in Javascript?”

    Ich habe gerade gesehen, dass du den folgenden Header in deinem Servlet ausgibst:

     response.setHeader("Content-Type", "text/html;charset=UTF-8"); 

    Versuchen Sie, den Inhaltstyp auf application/json ändern.

    @Eli ist richtig über die Verwendung der for in eine schlechte Idee, aber es scheint mir, dass der Code sollte funktionieren. Die folgende jsFiddle arbeitet in IE9: http://jsfiddle.net/shaneblake/arhB7/

    Bist du sicher, dass die Daten im richtigen Format zurückkehren und nicht als String? JSON.parse(data) du versucht, mit JSON.parse(data) zu arbeiten?

    Es gilt als schlechte Praxis, über ein Array mit der for in Syntax zu iterieren. Versuche es stattdessen

     for (var i = 0, len = data.length; i < len; i++) { console.log(data[i].courseNumber); } 

    Wenn Ihre Seite in irgendeiner Weise den Array-Prototyp erweitert hat, dann wird die Verwendung for in deinem Skript dazu führen, dass diese Skripte über diese erweiterten Eigenschaften iterieren und wenn diese vor Ihren tatsächlichen Werten getroffen werden, wird es höchstwahrscheinlich einen Fehler verursachen. Der beste Weg, dies zu vermeiden ist, eine traditionelle für Schleife zu verwenden.

    Lassen Sie uns Javascript Schönheit und nützlich machen.