Json.net阅读序列化数组

时间:2014-11-02 14:09:23

标签: c# json json.net

我正在尝试从网上读取JSON数据,而我正在使用Json.net库执行此任务,问题是如果只有一个json对象

{"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; }
}

但我不知道如何处理这段代码。

1 个答案:

答案 0 :(得分:2)

您正在尝试将一个LocalhostTiming数组反序列化为一个实例。 您需要将对象反序列化为数组。

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