2011-04-06 20 views
106

मैं अपना कोड फॉर्म एक्सएमएल जेएसओएन में बदल रहा हूं।url से json स्ट्रिंग कैसे प्राप्त करें?

लेकिन मुझे नहीं पता कि किसी दिए गए यूआरएल से JSON स्ट्रिंग कैसे प्राप्त करें।

URL कुछ ऐसा है: "https://api.facebook.com/method/fql.query?query=.....&format=json"

मैं XDocuments से पहले इस्तेमाल किया, वहाँ मैं लोड विधि का उपयोग कर सकते हैं:

XDocument doc = XDocument.load("URL"); 

JSON के लिए इस विधि के बराबर क्या है? मैं JSON.NET का उपयोग कर रहा हूँ। ,

var json = new WebClient().DownloadString("url"); 

ध्यान रखें कि WebClientIDisposable है तो आप शायद उत्पादन कोड में यह करने के लिए एक using बयान जोड़ना होगा:

उत्तर

204

System.Net में WebClient वर्ग का प्रयोग करें। यह इस तरह दिखेगा:

using (WebClient wc = new WebClient()) 
{ 
    var json = wc.DownloadString("url"); 
} 
+7

आप उपयोग कर क्यों छोड़ कर बयान जो जॉन से जवाब में प्रयोग किया जाता है? – Skuli

+0

** आपकी टिप्पणी को दर्शाने के लिए संपादित किया गया। @Skuli –

84

AFAIK JSON.Net URL से पढ़ने के लिए कार्यक्षमता प्रदान नहीं करता है। तो अगर आप दो चरणों में ऐसा करने की जरूरत:

using (var webClient = new System.Net.WebClient()) { 
    var json = webClient.DownloadString(URL); 
    // Now parse with JSON.Net 
} 
+2

+1 JSON.Net का सुझाव देने पर अच्छा कॉल। देखने के लिए बहुत अच्छी पुस्तकालय। – jsmith

+1

@ जेस्मिथ: यह कोई सुझाव नहीं था ... ओपी ने इसका उल्लेख किया :) – Jon

+0

Thx मुझे मदद करने के लिए, यह अजीब बात है कि मुझे यह Google पर नहीं मिला, यह वास्तव में एक बुनियादी सवाल था? अब मुझे एक त्रुटि है: JSON ऑब्जेक्ट को 'System.String' प्रकार में deserialize नहीं कर सकता। मुझे पता है कि यह मेरी कक्षा में कुछ विशेषता है जिसे सही घोषित नहीं किया गया है, लेकिन मुझे बस एक नहीं मिल रहा है। लेकिन मैं अभी भी कोशिश कर रहा हूँ! :) – ThdK

33

आप .NET 4.5 का उपयोग कर और async तो आप System.Net.Http में HttpClient उपयोग कर सकते हैं का उपयोग करना चाहते हैं, तो:

using (var httpClient = new HttpClient()) 
{ 
    var json = await httpClient.GetStringAsync("url"); 

    // Now parse with JSON.Net 
} 
+4

यह यूनिवर्सल विंडोज ऐप्स के साथ काम करता है – garenyondem

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