ฉันรู้ว่ามีบางโพสต์เกี่ยวกับ Newtonsoft ดังนั้นหวังว่านี่ไม่ใช่การทำซ้ำอย่างแน่นอน ... ฉันพยายามแปลงข้อมูล JSON ที่ส่งคืนโดย Kazaa API เป็นวัตถุที่ดีในบางประเภท
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 บรรทัดล่าสุดที่ฉันพยายาม ... ฉันไม่ได้รับมันและหวังว่าจะกำจัดฟุตเวิร์กโดยถามพวกคุณ ตอนแรกฉันพยายามแปลงมันเป็นพจนานุกรมหรืออะไรบางอย่าง ... และที่จริงแล้วฉันแค่ต้องการขัดขวางค่าบางอย่างในเอกสารเพื่อพิจารณาจากเอกสารบางที LINT ของ Newtonsoft เป็น JSON อาจเป็นทางเลือกที่ดีกว่า ความคิด / Links?
นี่คือตัวอย่างของข้อมูลการส่งคืน 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
}
ฉันทำการอ่านเพิ่มเติมและพบว่า LINQT ของ Newtonsoft ต่อ JSON เป็นสิ่งที่ฉันต้องการ ... โดยใช้ WebClient, Stream, StreamReader และ Newtonsoft ... ฉันสามารถกด Kazaa สำหรับข้อมูล JSON ดึง 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
บล็อกรหัสของคุณ