2014-11-02 63 views
0

我试图从网络读取JSON数据,和我使用Json.net库完成此任务,问题是如果只有一个JSON对象Json.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 2014-11-02 14:17:39