# JSON response undefined



## neonfly (19. Sep 2009)

Guten Abend,

ich arbeite mit dem Client-Framework ExtJS schon seit längerem und benutze AJAX an fast allen Stellen, um mit meiner Java/Spring-Anwendung zu kommunizieren, manchmal nutze ich DWR.

Nun bin ich auf ein, für mich, unerklärliches Problem gestossen.
Folgender Code bringt mir Nachrichtenboxen, mit dem Inhalt wie im Code kommentiert.
success true wird gefunden, aber alles in result nicht.

Die Serverantwort im Firebug, ist im Anhang.


```
function loadForm() {
           Ext.Ajax.request({
                  url      : 'loadform.html?globalId=' + gvGlobalId,
                  method   : 'GET', 
                  callback : function(pvOptions, pvSuccess, pvResponse){

                      var responseObj = Ext.util.JSON.decode(pvResponse.responseText);
                      alert(responseObj.success); //shows "true"
                      if(responseObj.success == "true") {
                          alert(responseObj.result.title); //shows "undefined"
                      } else {

                          Ext.Msg.alert('Fehler', 'Fensterinformationen konnten nicht geladen werden!',
                          function() {win.close();});
                      }
                  }
            });
       }
```

Die gleiche Vorgehensweise funktioniert im Rest des Projektes problemlos; vom Aufbau her gleicher Response und gleiche Verarbeitungsweise Client-seitig.

Hat jemand eine Idee, woran das liegen könnte?


----------



## eRaaaa (20. Sep 2009)

hmm, 


```
alert(responseObj.result[0].title);
```

so vllt?


----------



## neonfly (20. Sep 2009)

LOL, hat funktioniert.

Dann sag mir aber bitte, warum folgender Code (auf response bezogen), an zig anderen Stellen funktioniert:

```
Ext.Ajax.request({
              url      : lvUrl,
              method   : 'GET', 
              callback : function(pvOptions, pvSuccess, pvResponse){

                 var responseObj = Ext.util.JSON.decode(pvResponse.responseText);
                 gvRole = responseObj.result.userrole;
                 gvFir = responseObj.result.company;
                 gvUser = responseObj.result.userid;
              }
        });
```


----------



## eRaaaa (20. Sep 2009)

was zeigt firebug da als antwort an?


----------



## neonfly (20. Sep 2009)

Exakt das Gleiche, bis auf die unterschiedlichen Daten natürlich.

Ich verstehe das nicht, ich benutze das 2. Snippet grob überschlagen zwischen 45 und 50mal und es funktioniert überall problemlos.


----------



## eRaaaa (20. Sep 2009)

puh, gute frage.

....

/edit die zweite: und du bist dir sicher, dass sonst auch immer value ein array war? 
sieht das da nicht vllt irgendwie so aus: 

```
{"result": 
        {"userrole": "USERROLE", "company": "DEINECOMPANY", "userid": "ID"}}
```

denn folgendes geht:
	
	
	
	





```
var object ={"result": 
        {"userrole": "USERROLE", "company": "DEINECOMPANY", "userid": "ID"}};
alert(object.result.userrole);
```


----------

