मुझे पता है कि न्यूटनसॉफ्ट के बारे में कुछ पोस्ट हैं, इसलिए उम्मीद है कि यह बिल्कुल दोहराव नहीं है ... मैं KSONa के एपीआई द्वारा लौटाए गए JSON डेटा को किसी तरह की अच्छी वस्तु में बदलने की कोशिश कर रहा हूं
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album");
StreamReader reader = new StreamReader(stream);
List<string> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(reader.Read().ToString());
foreach (string item in list)
{
Console.WriteLine(item);
}
//Console.WriteLine(reader.ReadLine());
stream.Close();
वह JsonConvert लाइन अभी हाल ही में एक है जो मैं कोशिश कर रहा था ... मैं इसे प्राप्त नहीं कर रहा हूं और आप लोगों से पूछकर कुछ फुटवर्क को खत्म करने की उम्मीद कर रहा था। मैं मूल रूप से इसे एक डिक्शनरी या किसी चीज़ में बदलने की कोशिश कर रहा था ... और वास्तव में, मुझे बस कुछ मूल्यों को टटोलने की ज़रूरत है, इसलिए दस्तावेज़ीकरण को देखते हुए, शायद न्यूटनसॉफ्ट का LINQ to JSON एक बेहतर विकल्प हो सकता है? विचार / लिंक?
यहां JSON रिटर्न डेटा का एक उदाहरण दिया गया है:
{
"page": 1,
"total_pages": 8,
"total_entries": 74,
"q": "muse",
"albums": [
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "http://image.kazaa.com/images/69/01672812 1569/Yaron_Herman_Trio/Muse/Yaron_Herman_Trio-Muse_1.jpg",
"id": 93098,
"artist_name": "Yaron Herman Trio"
},
{
"name": "Muse",
"permalink": "Muse",
"cover_image_url": "htt p://image.kazaa.com/images/54/888880301154/Candy_Lo/Muse/Candy_Lo-Muse_1.jpg",
"i d": 102702,
"artist_name": "\u76e7\u5de7\u97f3"
},
{
"name": "Absolution",
"permalink": " Absolution",
"cover_image_url": "http://image.kazaa.com/images/65/093624873365/Mus e/Absolution/Muse-Absolution_1.jpg",
"id": 48896,
"artist_name": "Muse"
},
{
"name": "Ab solution",
"permalink": "Absolution-2",
"cover_image_url": "http://image.kazaa.com/i mages/20/825646911820/Muse/Absolution/Muse-Absolution_1.jpg",
"id": 118573,
"artist _name": "Muse"
},
{
"name": "Black Holes And Revelations",
"permalink": "Black-Holes-An d-Revelations",
"cover_image_url": "http://image.kazaa.com/images/66/093624428466/ Muse/Black_Holes_And_Revelations/Muse-Black_Holes_And_Revelations_1.jpg",
"id": 48813,
"artist_name": "Muse"
},
{
"name": "Black Holes And Revelations",
"permalink": "Bla ck-Holes-And-Revelations-2",
"cover_image_url": "http://image.kazaa.com/images/86/ 825646911486/Muse/Black_Holes_And_Revelations/Muse-Black_Holes_And_Revelations_1 .jpg",
"id": 118543,
"artist_name": "Muse"
},
{
"name": "Origin Of Symmetry",
"permalink": "Origin-Of-Symmetry",
"cover_image_url": "http://image.kazaa.com/images/29/825646 912629/Muse/Origin_Of_Symmetry/Muse-Origin_Of_Symmetry_1.jpg",
"id": 120491,
"artis t_name": "Muse"
},
{
"name": "Showbiz",
"permalink": "Showbiz",
"cover_image_url": "http: //image.kazaa.com/images/68/825646182268/Muse/Showbiz/Muse-Showbiz_1.jpg",
"id": 60444,
"artist_name": "Muse"
},
{
"name": "Showbiz",
"permalink": "Showbiz-2",
"cover_imag e_url": "http://image.kazaa.com/images/50/825646912650/Muse/Showbiz/Muse-Showbiz_ 1.jpg",
"id": 118545,
"artist_name": "Muse"
},
{
"name": "The Resistance",
"permalink": "T he-Resistance",
"cover_image_url": "http://image.kazaa.com/images/36/825646864836/ Muse/The_Resistance/Muse-The_Resistance_1.jpg",
"id": 121171,
"artist_name": "Muse"
}
],
"per_page": 10
}
मैंने कुछ और पढ़ा और न्यूटनसॉफ्ट की LINQ को JSON में पाया, ठीक वैसा ही जैसा मैं चाहता था ... WebClient, Stream, StreamReader, और Newtonsoft का उपयोग ... मैं JSON डेटा के लिए Kazaa को हिट कर सकता हूं, एक URL निकाल सकता हूं, फ़ाइल डाउनलोड कर सकता हूं, और कर सकता हूं। कोड की सात लाइनों की तरह सभी! मुझे यह पसंद है।
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album");
StreamReader reader = new StreamReader(stream);
Newtonsoft.Json.Linq.JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
// Instead of WriteLine, 2 or 3 lines of code here using WebClient to download the file
Console.WriteLine((string)jObject["albums"][0]["cover_image_url"]);
stream.Close();
इस पोस्ट को बहुत सारे हिट मिले मैंने सोचा कि टिप्पणियों में चर्चा की गई "बिट्स" का उपयोग करना शामिल करना सहायक हो सकता है।
using(var client = new WebClient())
using(var stream = client.OpenRead("http://api.kazaa.com/api/v1/search.json?q=muse&type=Album"))
using (var reader = new StreamReader(stream))
{
var jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
Console.WriteLine((string) jObject["albums"][0]["cover_image_url"]);
}
WebClient
,Stream
औरStreamReader
सभी लागू होते हैंIDisposable
, आपusing
अपने कोड में कुछ ब्लॉक जोड़ना चाह सकते हैं ।