2013-07-28 9 views
5

Sto provando a creare un'app JS con la seguente funzionalità: Un pulsante che ottiene un documento JSON e visualizza quel testo. Sto attraversando un tutorial elasticsearch, e non v'è infatti valida JSON alla url fornisco:Uso di JavaScript per ottenere risposta JSON e visualizzazione sulla pagina Web, test di JavaScript

{"_index":"planet","_type":"hacker","_id":"xfSJlRT7RtWwdQDPwkIMWg","_version":1,"exists":true, "_source" : {"handle":"mark","hobbies":["rollerblading","hacking","coding"]}} 

Quando si utilizza il codice qui sotto ... ricevo un avviso di

[object Object] 

invece di un avviso con il JSON completo. Sto pensando di fare i passi successivi selezionando effettivamente una parte del JSON, ma mi piacerebbe almeno vedere prima il documento completo ...

Qualche idea? Grazie in anticipo!

<!DOCTYPE html> 
<html lang="en"> 
<head><title>Demo</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /></head> 

<body> 
    <input id="testbutton" type="button" value="Test" /> 
    <p id="results">results appended here: </p> 

<script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("#testbutton").click(function() { 
     $.ajax({ 
      url: 'http://localhost:9200/planet/hacker/xfSJlRT7RtWwdQDPwkIMWg', 
      dataType: 'json', 
      success: function(data) { 
       $("#results").append('all good'); 
       alert(data); 
      }, 
      error: function() { 
       $("#results").append("error"); 
       alert('error'); 
      } 
     }); 
    }); 
}); 
</script> 
</body> 
</html> 
+2

Invece di usare 'alert', usare' console.log'. Renderà il debugging molto più facile per te in futuro. –

+0

http://stackoverflow.com/q/29694300/4768363 problema simile si prega di passare attraverso. –

risposta

16

Usa alert(JSON.stringify(data));

2

jQuery cerca di "ipotesi migliore", il formato dei dati che riceve, e analizzare per voi.

Questo è esattamente quello che stai vedendo. jQuery ha già analizzato il JSON in un oggetto per te. Per vedere la rappresentazione JSON, puoi stringificare nuovamente i dati;

alert(JSON.stringify(data)); 

... o, si può dire jQuery non analizzare la risposta, in primo luogo, passando dataType: "string" come una delle opzioni. data sarà quindi la rappresentazione JSON, e sarà necessario JSON.parse(data) trasformarlo in un oggetto.

0

hai trovato la JSON convertito in un oggetto JavaScript da cui è possibile accedere alle singole proprietà tramite l'operatore . come

alert(data._type); 
0

semplice!

alert() chiamate .toString() sull'oggetto che restituisce "[oggetto oggetto]".

Utilizzare console.log(data), fare clic con il tasto destro del mouse e passare alla console (o premere F12).

O semplicemente fare come gli altri: alert(JSON.stringify(data));

Problemi correlati