2012-01-17 10 views
8

मैं अपनी प्रतिक्रिया (जेसन) डीबग करना चाहता हूं और इसे एक अलर्ट बॉक्स में स्ट्रिंग के रूप में प्रदर्शित करना चाहता हूं। क्या करने के लिए कोई सुविधाजनक चीज है?किसी जेसन ऑब्जेक्ट को एक अलर्ट बॉक्स में स्ट्रिंग में कैसे परिवर्तित करें?

var myjson = { Name : "Marko" }; 

alert(myjson.toString()); // ? [Object] !!! 
+1

@casperOne "असली सवाल नहीं"। आ जाओ! ग्रेट क्यू मार्को। – oma

+0

@oma नहीं, यह नहीं है। यह कोई मूल शोध प्रयास नहीं दिखाता है (जो "वास्तविक प्रश्न नहीं है") और यह भी "रचनात्मक नहीं है" (सुविधाजनक क्या है व्यक्तिपरक)। उस ने कहा, * उत्तर * ठीक हैं, लेकिन इससे सवाल अच्छा नहीं होता है। इस सवाल में स्टैक ओवरफ्लो परिप्रेक्ष्य से गुणवत्ता की कमी है। – casperOne

+1

मुझे लगता है कि यह एक प्रोग्रामर दृष्टिकोण से एक वैध सवाल है! और सवाल विशिष्ट है। – marko

उत्तर

9

सबसे सुविधाजनक तरीका है, अपने ब्राउज़र के कंसोल का उपयोग किया जाएगा।

console.log(json); 

अधिकांश ब्राउज़रों में आपको जेसन सामग्री का बहुत स्पष्ट रूप से दृश्य मिलता है।

Alternativly आप एक के लिए लूप के साथ एक स्ट्रिंग बना सकता है:

var output = ''; 
for (var entry in json) { 
    output += 'key: ' + entry + ' | value: ' + json[entry] + '\n'; 
} 
alert(output); 

लेकिन इस रिकर्सिवली नहीं है। यहां एक कामकाजी प्रदर्शन है: http://jsfiddle.net/n695V/

+0

यदि आपके पास दो ऑब्जेक्ट हैं, जो पहले एक वस्तु है और बाद में वस्तुओं की एक सरणी है, यह समाधान इतना अच्छा काम नहीं करता है। और मैं एक दूरस्थ विंडोज सर्वर पर काम कर रहा हूं जिसमें केवल आईई 9 है। – marko

2

आप फायरबग या Google क्रोम अंतर्निहित कंसोल के अनुरोध के प्रतिक्रिया पाठ का विश्लेषण कर सकते हैं।

3

आप JSON.stringify का उपयोग कर सकते हैं। हालांकि, मुझे नहीं पता कि यह सभी सामान्य ब्राउज़रों में काम करता है या नहीं।

अलर्ट (JSON.stringify (json-object));

+0

ब्राउज़र के आधार पर आपको JSON.stringify कार्य करने के लिए इसे अपने पृष्ठ पर शामिल करने की आवश्यकता हो सकती है https://github.com/douglascrockford/JSON-js/blob/master/json2.js – MrKiane

0

JSON टेक्स्ट में जावास्क्रिप्ट डाटा संरचनाओं परिवर्तित इस

var myJSONText = JSON.stringify(myObject, replacer); 

एक JSON stringifier विपरीत दिशा में चला जाता है की कोशिश करो। जेएसओएन चक्रीय डेटा संरचनाओं का समर्थन नहीं करता है, इसलिए JSON स्ट्रिंगफ़ायर को चक्रीय संरचनाएं न देने के लिए सावधान रहें। http://www.json.org/js.html

16

आप अपनी सफलता की प्रतिक्रिया पर निम्न का उपयोग कर सकते हैं:

alert(JSON.stringify(data)); 
1

यदि आप JSON संरचना प्रदान करते हैं, तो आपको स्पष्ट उत्तर मिल जाएगा।

उदाहरण के लिए, यदि आपके पास JSON संरचना से नीचे है।

var json={ “id”:23,”name”:”marko”}; 
    for(key in json){ 
      alert(key+'->'+json[key]); 
    } 

यह ऊपर एकल नोड json के लिए आसान नहीं है। यदि JSON संरचना गहरा है, तो आपको मूल्य प्राप्त होने तक पुन: प्रयास करना होगा :)

या। बल्कि सबसे आसान तरीका console.log (जेसन) है; और फायरबग में देखें, आपको जेसन ब्लॉक के अंदर क्या मिलेगा।

0
function JSON2string (jsonobject,prefix) { 
    if (!prefix) prefix=""; 
    if (typeof(jsonobject)=="string") return jsonobject; 
    if (typeof(jsonobject)=="number") return jsonobject.toString(); 
    if (typeof(jsonobject)=="object") { 
    var s="Object:\n" 
    var newprefix=" "+prefix; 
    for (var i in jsonobject) s+=prefix+i+"="+JSON2String(jsonobject[i],newprefix)+"\n"; 
    return s; 
    } 
    return "<unhandled>"; 
} 
संबंधित मुद्दे