2013-07-28 10 views
5

Próbuję utworzyć aplikację JS z następującą funkcją: Przycisk, który pobiera dokument JSON i wyświetla ten tekst. Idę przez samouczek Elasticsearch, a tam jest rzeczywiście ważne JSON w url I zapewniamy:Używanie JavaScript w celu uzyskania odpowiedzi i wyświetlania JSON na stronie internetowej, testowanie JavaScript

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

Przy użyciu kodu poniżej ... pojawia się alert o

[object Object] 

zamiast alert z pełnym JSON. Planuję wykonać kolejne kroki w celu wyboru części JSON, ale chciałbym najpierw zobaczyć pełny dokument ...

Jakieś pomysły? Z góry dziękuję!

<!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

Zamiast używać 'alert', użyj' console.log'. To znacznie ułatwi debugowanie w przyszłości. –

+0

http://stackoverflow.com/q/29694300/4768363 podobny problem, proszę przejść. –

Odpowiedz

16

Zastosowanie alert(JSON.stringify(data));

2

jQuery próbuje „najlepszy przypuszczenie” format danych odbiera i przetwarza go dla Ciebie.

Dokładnie to widzisz. jQuery już przeanalizował JSON w obiekcie dla ciebie. Aby zobaczyć reprezentację JSON, możesz ponownie uszeregować dane;

alert(JSON.stringify(data)); 

... czy można powiedzieć jQuery nie do analizowania odpowiedzi w pierwszej kolejności, przechodzącego dataType: "string" jako jedną z opcji. data będzie wtedy reprezentacją JSON, a będziesz musiał JSON.parse(data) przekształcić go w obiekt.

0

otrzymujesz JSON przekształcony w javascript obiektu, z którego można uzyskać dostęp do poszczególnych właściwości za pomocą operatora . jak

alert(data._type); 
0

Simple!

alert() dzwoni .toString() na obiekcie, który zwraca "[obiekt obiektu]".

Użyj console.log(data), kliknij prawym przyciskiem myszy i przejdź do konsoli (lub naciśnij F12).

Albo po prostu zrób tak, jak inni: alert(JSON.stringify(data));

Powiązane problemy