使用StreamReader反序列化json数组

时间:2019-06-06 20:16:12

标签: c# arrays json

我有一个看起来像这样的json文件:

[
    [value1, value2, value3]
    [value2, value2, value3]
    ...
]

我尝试同时使用两者

using (StreamReader r = new StreamReader(HostingEnvironment.MapPath("~/Content/TempData/CapitalSparesBucketsTableData.json")))
        {
            string json = r.ReadToEnd();
            JavascriptSerialzer ser = new JavaScriptSerializer()
            var r  = ser.Deserialize<ResultList>(json);

        }

  using (StreamReader r = new StreamReader(HostingEnvironment.MapPath("~/Content/TempData/searchData.json")))
        {
            string json = r.ReadToEnd();
            List<SearchResult> searchResults = JsonConvert.DeserializeObject<List<SearchResult>>(json);
        }

使用这两种方法都会出错。

我的模型如下:

public class SearchResults
{
    public int TotalRecords { get; set; }
    public SearchResult[] Results { get; set; }
}

public class ResultList
{
    public SearchResult record;
}



public class SearchResult
    {
        public SearchResult() { }
        public SearchResult(IDataReader reader)
    {
        DataTable dt = new DataTable();

        using (reader)
        {
            dt.Load(reader);
        }
        DataRow row = dt.Rows[0];
    }

    public int Value1 { get; set; }
    public int Value2 { get; set; }
    public string Value3 { get; set; }
    public string Value4 { get; set; }
    public string Value5 { get; set; }
    public string Value6 { get; set; }
}

任何帮助将不胜感激。

TIA

1 个答案:

答案 0 :(得分:1)

嗯,看起来像是锯齿状数组。我试过了,它可以与.Net Core 2.2一起使用。

var result = JsonConvert.DeserializeObject<IEnumerable<IEnumerable<string>>>("[['value'],['value']]");

不好。:找不到与此问题完全相同的任何问题。