2013-07-28 8 views
5

परीक्षण मैं निम्नलिखित कार्यक्षमता के साथ एक जेएस ऐप बनाने की कोशिश कर रहा हूं: एक बटन जो JSON दस्तावेज़ प्राप्त करता है और उस पाठ को प्रदर्शित करता है। मैं एक Elasticsearch ट्यूटोरियल के माध्यम से जा रहा हूँ, और वहाँ वास्तव में यूआरएल मैं प्रदान करते हैं पर मान्य JSON है:जेएसओएन प्रतिक्रिया प्राप्त करने और वेबपृष्ठ पर प्रदर्शित करने के लिए जावास्क्रिप्ट का उपयोग करके, जावास्क्रिप्ट

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

नीचे कोड का उपयोग करते समय ... मैं

[object Object] 

की एक चेतावनी के बजाय मिल पूर्ण JSON के साथ एक चेतावनी। मैं वास्तव में जेएसओएन के हिस्से का चयन करने के बाद कदम उठाने की योजना बना रहा हूं, लेकिन मैं कम से कम पूर्ण दस्तावेज़ देखना चाहता हूं ...

कोई विचार? आपका अग्रिम में ही बहुत धन्यवाद!

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

'अलर्ट' का उपयोग करने के बजाय, 'console.log' का उपयोग करें। यह भविष्य में आपके लिए डीबगिंग को काफी आसान बना देगा। –

+0

http://stackoverflow.com/q/29694300/4768363 इसी तरह की समस्या कृपया आगे बढ़ें। –

उत्तर

16

उपयोग alert(JSON.stringify(data));

2

jQuery "सर्वोत्तम अनुमान" डेटा स्वरूप यह प्राप्त करता है, और आप के लिए यह पार्स करने के लिए कोशिश करता है।

यह वही है जो आप देख रहे हैं। jQuery ने आपके लिए जेएसओएन को किसी ऑब्जेक्ट में पहले ही पार्स कर दिया है। JSON प्रस्तुति देखने के लिए, आप डेटा को फिर से स्ट्रिंग कर सकते हैं;

alert(JSON.stringify(data)); 

... या, आप jQuery बता पहली जगह में प्रतिक्रिया, dataType: "string" विकल्पों में से एक के रूप में गुजर पार्स करने के लिए नहीं कर सकते। data तब JSON प्रतिनिधित्व होगा, और आपको इसे किसी ऑब्जेक्ट में बदलने के लिए JSON.parse(data) करना होगा।

0

आप JSON का javascript ऑब्जेक्ट जिसमें से आप की तरह

alert(data._type); 
0

सरल . ऑपरेटर का उपयोग अलग-अलग प्रॉपर्टी का उपयोग कर सकते करने के लिए परिवर्तित हो रही है!

alert() ऑब्जेक्ट पर .toString() पर कॉल करता है जो "[ऑब्जेक्ट ऑब्जेक्ट]" देता है।

console.log(data) का उपयोग करें, राइट-क्लिक करें और कंसोल (या F12 दबाएं) पर क्लिक करें।

या बस दूसरों के रूप में करें: alert(JSON.stringify(data));

संबंधित मुद्दे

 संबंधित मुद्दे