Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Newtonsoft.Json用C#反序列化Json字符串_C#_Json - Fatal编程技术网

使用Newtonsoft.Json用C#反序列化Json字符串

使用Newtonsoft.Json用C#反序列化Json字符串,c#,json,C#,Json,我读过一些文章,但没有解决我的问题,反序列化时JSON字符串有问题,这里是字符串 {"table":"sy_version","effected":2,"data":[{"mod_id":"CS","sub_mod":"sbm_sl.exe","version":"2015.11.07.1","upload_date ":"2015-11-10 11:34:13"},{"mod_id":"FA","sub_mod":"sbm_fa.exe","version":"2015.11.09","upl

我读过一些文章,但没有解决我的问题,反序列化时JSON字符串有问题,这里是字符串

{"table":"sy_version","effected":2,"data":[{"mod_id":"CS","sub_mod":"sbm_sl.exe","version":"2015.11.07.1","upload_date ":"2015-11-10 11:34:13"},{"mod_id":"FA","sub_mod":"sbm_fa.exe","version":"2015.11.09","upload_date ":"2015-11-10 11:34:13"}]}    
这是我的课

    public class Datum
    {
        public string mod_id { get; set; }
        public string sub_mod { get; set; }
        public string version { get; set; }
        public DateTime upload_date { get; set; }
    }

    public class sy_periode
    {
        public string table { get; set; }
        public int effected { get; set; }
        public IList<Datum> datas { get; set; }
    }

    public static void test(string str) {
        // dynamic sy_periode = JsonConvert.DeserializeObject(str);
        var sy_periode = JsonConvert.DeserializeObject<sy_periode>(str);
        foreach (var data in sy_periode.datas)
        {
            Console.WriteLine(data.sub_mod);
        }

    }

它不应该是
datas
,它应该与JSON对象同名:
data

以下是正确的类结构:

public class Datum
{
    public string mod_id { get; set; }
    public string sub_mod { get; set; }
    public string version { get; set; }
    public DateTime upload_date { get; set; }
}

public class sy_periode
{
    public string table { get; set; }
    public int effected { get; set; }
    public IList<Datum> data { get; set; }
}    

我不太确定它是否能工作,但我看不出它不能工作的原因。

使用IDEs内置调试器;这比使用StackOverflow作为调试器要快得多。即使快速浏览代码也会发现输入错误:)是的,谢谢你的帮助。
public class Datum
{
    public string mod_id { get; set; }
    public string sub_mod { get; set; }
    public string version { get; set; }
    public DateTime upload_date { get; set; }
}

public class sy_periode
{
    public string table { get; set; }
    public int effected { get; set; }
    public IList<Datum> data { get; set; }
}    
[JsonProperty(PropertyName = "upload_date ")]
public DateTime upload_date { get; set; }