SORU
20 Ocak 2011, PERŞEMBE


kaldırmada için JSON .net NewtonSoft (ya da belki json bu seri?)kullanarak nesne

Bir kaç mesaj hakkında bu tam olarak bir tekrar değil bu yüzden umarım Newtonsoft biliyorum...bir tür güzel bir nesnesine JSON veri Kazaa API tarafından döndürülen dönüştürmek için çalışıyorum

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();

bu JsonConvert hattı sadece çalışıyordum, en son...tam olarak alamıyorum ve siz sorarak bazı ayak hareketleri ortadan kaldırmak için umut oldu. Ben aslında çalışıyorum dönüştürmek içine bir Sözlük falan...ve aslında ihtiyacım olan Budak birkaç değerleri var o yüzden yargılamak belgelere göre, belki Newtonsoft. JSON Etmeniz için olabilir daha iyi bir seçim mi? Düşünceler Bağlantılar/?

Burada JSON verileri bir örnek:

{
  "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_nam e": "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
}

Bazı daha fazla okuma ve bulunan Newtonsoft. JSON Etmeniz için tam olarak ne istediğimi...kullanarak WebClient, Akış, StreamReader ve Newtonsoft..ben vurmak Kazaa için JSON veri ayıklamak bir URL, dosya indirmek, ve bunu tüm gibi 7 satır kod! Onu seviyorum

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();

CEVAP
20 Ocak 2011, PERŞEMBE


Sadece JSON bazı şeyleri, json.net kullandığım nesne almak gerekir'JObject Sınıf JSON s Seri. Örneğin:

JToken token = JObject.Parse(stringFullOfJson);

int page = (int)token.SelectToken("page");
int totalPages = (int)token.SelectToken("total_pages");

Tamamen JSON nesne serisini gerek yok çünkü bu yaklaşım gibi. Bu Twitter gibi bazen kayıp nesne özellikleri ile sizi şaşırtabilir bu API ile kullanışlı geliyor.

Belgeler: Serializing and Deserializing JSON with Json.NET LINQ to JSON with Json.NET

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • kndx

    kndx

    11 Mart 2006
  • TheDailyTechDose

    TheDailyTech

    15 EKİM 2012