• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem beim JSON String parsen

Patrick0585

Neues Mitglied
Hallo alle zusammen, ich hole mir einen JSON-String von einer URL und versuche Ihn zu parsen, jedoch habe ich damit noch einige Probleme!

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
<script type="text/javascript" src="jquery-1.8.0.js"></script>
<script  type="text/javascript">


    var http = null;
    if (window.XMLHttpRequest) {
        http = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        http = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (http != null) {
        http.open("GET",
                "http://localhost:8080/My_Project/services/service/getSerie1/0",
                true);
        http.onreadystatechange = ausgeben;
        http.send(null);
    }

    function ausgeben() {
        if (http.readyState == 4) {
            document.getElementById("Ausgabe").innerHTML = "TEST";
            alert("ResponseText: "+http.responseText);   // hier sehe ich das JSON-String richtig         
            
            var daten = http.responseText;
            //daten = eval("(" + daten + ")");
      
            alert(myObject); // Hier sehe ich dann im Alert-Fenster nur ein Objekt

      var liste = document.getElementById("Liste");
      alert("length: "+daten.length);
      for (var i = 0; i < daten.length; i++) {
         var link = daten[i];
         alert("link-Url:"+link.text);
         var li = document.createElement("li");
         var a = document.createElement("a");
         a.setAttribute("href", link.url);
         var txt = document.createTextNode(link.text);
         a.appendChild(txt);
         li.appendChild(a);
         liste.appendChild(li);
      }
        }
    }




//-->
</script>
</head>
  
 
<body>

    <ul id="Liste"></ul>
    </body>
</html>

Nachdem http.responseText; sehe ich das JSON-String richtig:
Code:
{"date":1346250936424,"name":"DVO","maxcalls":5,"strategy":null,"talktime":"40s","holdtime":"5s","ca":4,"cua":0,"servicelevel":"75%","präsenz":null}

Nach dem eval(..) bekomme ich im alert() nur noch einen [object Object]. Jedoch möchte ich z.B. alle Elemente aus dem JSON-String auflisten !

Würde mich sehr über Eure Hilfe freuen!

Danke
 
alert() kann nur Texte ausgeben, du hast deinen JSON-String aber in ein Objekt geparst. Um sie auszugeben kannst du z.B. alle Punkte im Objekt durchgehen:

var show = function(obj) {
var html = "<ul>";
for (var i in obj) {
text += "<li>" + (typeof obj == "object" ? show(obj) : i + ": " + obj);
return html;
}
 
Zurück
Oben