2013-03-05 19 views
8

Bir PHP komut dosyasından aldığım nesne verilerini ayrıştırmak için JSON.net kullanıyorum.Nesnelerin JSON dizisini ayrıştırma: "En iyi aşırı yüklenmiş yöntem eşleşmesinde bazı geçersiz değişkenler var"

Diziyi ayrıştırıp onu parçalamayı başarabiliyorum. Sonra ben bu hatayı alıyorum dizinin içindeki her nesneyi ayrıştırmak için denemek kez:

Additional information: The best overloaded method match for 
'Newtonsoft.Json.JsonConvert.DeserializeObject(string)' 
has some invalid arguments 

Bu bana hataları veriyor işlevdir: Ben sadece dün gece C# öğrenmeye başladı

public void updateSearches() 
    { 
     var bw = new BackgroundWorker(); 

     bw.DoWork += (send, args) => 
     { 
      WebClient client = new WebClient(); 
      JSON = client.DownloadString("URL"); 
      dynObj = JsonConvert.DeserializeObject(JSON); 
      foreach (var item in dynObj) 
      { 
       dynamic search = JsonConvert.DeserializeObject(item); 
       foreach (var s in search) 
       { 
        joined += string.Join(",", s) + "END OF THE LINE\r\n"; 
       } 
      } 
     }; 

     bw.RunWorkerCompleted += (send, args) => 
     { 
      this.mainWindow.richTextBox2.Text += "Got Data!\r\n"; 
      this.mainWindow.richTextBox2.Text += joined; 
     }; 

     bw.RunWorkerAsync(); 

    } 

, bu yüzden ben çok yeniyim. Daha fazla bilgiye ihtiyacınız varsa lütfen bize bildirin.

+0

Başlığınızı düzenledim. Lütfen, "[Sorular soruların başlığında" etiketler içeriyor mu? "(Http://meta.stackexchange.com/questions/19190/)" bölümüne bakacak olursak, fikir birliği "hayır, yapmamalı" dır. –

+0

Gotcha, teşekkürler. –

cevap

9

'JSON' nasıl bir nesne? Çalışmak için DeserializeObject yönteminin bir dize nesnesini geçirmeniz gerekir.

+0

JSON yukarıda açıklanmıştır: 'public dize JSON; –

+6

sonra DeserializeObject (item) yerine DeserializeObject yerine ikinci çağrıda hatayı atması gerekir DeserializeObject (item.ToString()) – Austin

+0

Bu işe yaradı! Teşekkürler. –

İlgili konular