反序列化Json数组Newtonsoft.Json



我有以下JSON

[
 {
  "id":"656332",
  "t":"INTU",
  "e":"NASDAQ",
  "l":"108.35",
  "l_fix":"108.35",
  "l_cur":"108.35",
  "s":"2",
  "ltt":"4:00PM EST",
  "lt":"Nov 8, 4:00PM EST",
  "lt_dts":"2016-11-08T16:00:01Z",
  "c":"+0.45",
  "c_fix":"0.45",
  "cp":"0.42",
  "cp_fix":"0.42",
  "ccol":"chg",
  "pcls_fix":"107.9",
  "el":"108.43",
  "el_fix":"108.43",
  "el_cur":"108.43",
  "elt":"Nov 8, 4:15PM EST",
  "ec":"+0.08",
  "ec_fix":"0.08",
  "ecp":"0.08",
  "ecp_fix":"0.08",
  "eccol":"chg",
  "div":"0.34",
  "yld":"1.26"
},
{
  "id":"13756934",
  "t":".IXIC",
  "e":"INDEXNASDAQ",
  "l":"5,193.49",
  "l_fix":"5193.49",
  "l_cur":"5,193.49",
  "s":"0",
  "ltt":"4:16PM EST",
  "lt":"Nov 8, 4:16PM EST",
  "lt_dts":"2016-11-08T16:16:29Z",
  "c":"+27.32",
  "c_fix":"27.32",
  "cp":"0.53",
  "cp_fix":"0.53",
  "ccol":"chg",
  "pcls_fix":"5166.1729"
 }
]

我试图反序列化这个数组并使用,但我一直得到以下错误:

无法将当前JSON数组(例如[1,2,3])反序列化为'StockTicker '类型。home+Class1',因为该类型需要一个JSON对象(例如{"name":"value"})来正确反序列化。

这是我的班级:

 public class Rootobject
    {
        public Class1[] Property1 { get; set; }
    }
    public class Class1
    {
        public string id { get; set; }
        public string t { get; set; }
        public string e { get; set; }
        public string l { get; set; }
        public string l_fix { get; set; }
        public string l_cur { get; set; }
        public string s { get; set; }
        public string ltt { get; set; }
        public string lt { get; set; }
        public DateTime lt_dts { get; set; }
        public string c { get; set; }
        public string c_fix { get; set; }
        public string cp { get; set; }
        public string cp_fix { get; set; }
        public string ccol { get; set; }
        public string pcls_fix { get; set; }
        public string el { get; set; }
        public string el_fix { get; set; }
        public string el_cur { get; set; }
        public string elt { get; set; }
        public string ec { get; set; }
        public string ec_fix { get; set; }
        public string ecp { get; set; }
        public string ecp_fix { get; set; }
        public string eccol { get; set; }
        public string div { get; set; }
        public string yld { get; set; }
    }

下面是我要做的:

var jsonObject1 = JsonConvert.DeserializeObject<Rootobject>(json);
var blah = jsonObject1.Property1[0].c;

我不知道该怎么办

如异常所示,最外层的JSON容器是一个数组——由[]包围的逗号分隔的值序列。因此,需要将其反序列化为某种类型的集合,正如文档中所解释的那样。因此,您需要这样做:

var items = JsonConvert.DeserializeObject<Class1 []>(json);
var blah = items[0].c;

样本小提琴。

相关内容

  • 没有找到相关文章

最新更新