2014-11-02 5 views
0

Я пытаюсь читать данные в формате JSON из Интернета, и я использую библиотеку Json.NET для решения этой задачи, проблема если есть только один объект JSONJson.net чтение сериализованного массива

{"id":"2340","time":"2014-10-29 16:26:49"} 

все работает хорошо, но если их массив

[{"id":"2340","time":"2014-10-29 16:26:49"}, {"id":"2341","time":"2014-10-29 16:27:21"}] 

Программа не работает.

using System; 
using System.Net; 
using System.IO; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Data.OleDb; 
using System.Drawing; 
using System.Linq; 
using System.Collections.Specialized; 
using System.Text; 
using System.Windows.Forms; 
using Newtonsoft.Json; 

    namespace Localhostnet 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private void Form1_Load(object sender, EventArgs e) 
      { 

       using (WebClient client = new WebClient()) 
       { 
        string htmlCode = client.DownloadString('http://localhost/json.php'); 
        LocalhostTiming jsonResponse = JsonConvert.DeserializeObject<LocalhostTiming>(htmlCode); 
        string timeId = jsonResponse.id; 

        MessageBox.Show(timeId); 
       } 
      } 
     } 

     public class LocalhostTiming 
     { 
      public string id { get; set; } 
      public string time { get; set; } 
     } 

    } 

Я пытался добавить

public class DataContainer 
{ 
    public List<LocalhostTiming> LocalhostTiming{ get; set; } 
} 

Но я не знаю, как работать с этим кодом.

ответ

2

Вы пытаетесь десериализовать массив LocalhostTiming в один его экземпляр. Вам нужно десериализовать объект в массив.

List<LocalhostTiming> jsonResponse = JsonConvert.DeserializeObject<List<LocalhostTiming>>(htmlCode); 
+0

Работает как очарование. – MyMomSaysIamSpecial

Смежные вопросы