C# 使用不同类型的对象解析json字符串的方法

C# 使用不同类型的对象解析json字符串的方法,c#,json,parsing,jsonfx,C#,Json,Parsing,Jsonfx,我有以下json字符串 { "serverTime": "2013-08-12 02:45:55,558", "data": [{ "key1": 1, "result": { "sample1": [""], "sample2": "test2" } },{ "key1": 1, "result": { "sample3

我有以下json字符串

{
    "serverTime": "2013-08-12 02:45:55,558",
    "data": [{
        "key1": 1,
        "result": {
            "sample1": [""],
            "sample2": "test2"
        }
    },{
        "key1": 1,
        "result": {
            "sample3": [""],
            "sample4": "test2"
        }
    }]
}
使用

生成以下类

public class Result 
{
    public List<string> sample1 { get; set; }
    public string sample2 { get; set; }
    public List<string> sample3 { get; set; }
    public string sample4 { get; set; } 
} 

public class Datum 
{
    public int key1 { get; set; }
    public Result result { get; set; } 
}

public class RootObject 
{
    public string serverTime { get; set; }
    public List<Datum> data { get; set; } 
}
公共类结果
{
公共列表sample1{get;set;}
公共字符串sample2{get;set;}
公共列表样本3{get;set;}
公共字符串sample4{get;set;}
} 
公共类数据
{
public int key1{get;set;}
公共结果结果{get;set;}
}
公共类根对象
{
公共字符串serverTime{get;set;}
公共列表数据{get;set;}
}
可以看到,该工具已生成具有所有可能属性的结果

我尝试使用以下方法来解析json

public class Response<T>
{
    public Date serverTime;
    public ResponseData<T>[] data;
}

public class ResponseDataBase
{
    public int key1;
}

public class ResponseData<T> : ResponseDataBase
{
    public T result;
}
公共类响应
{
公共日期和时间;
公共响应数据[]数据;
}
公共类响应数据库
{
公共int键1;
}
公共类响应数据:响应数据库
{
公众对结果的怀疑;
}
这里可以T分为两类

Class Result1
{
   public List<string> sample1 { get; set; }
   public string sample2 { get; set; }
}

Class Result2
{
    public List<string> sample3 { get; set; }
    public string sample4 { get; set; }
}
类结果1
{
公共列表sample1{get;set;}
公共字符串sample2{get;set;}
}
课堂结果2
{
公共列表样本3{get;set;}
公共字符串sample4{get;set;}
}
我有这些类声明作为参考,类定义可以完全不同

**如何通过指定结果类型来解析此json。**我正在使用JSONFx.net反序列化回对象


感谢您根据JSON数据生成的类:

public class Result
{
    public List<string> sample1 { get; set; }
    public string sample2 { get; set; }
}

public class Datum
{
    public int key { get; set; }
    public Result result { get; set; }
}

    public class RootObject
    {
    public string serverTime { get; set; }
    public List<Datum> data { get; set; }
}

等等。

在json.net中,我们在这种情况下使用转换器。也许你想让你的问题更清楚。
var obj = JsonConvert.DeserializeObject<RootObject>("yourjsonstring");
var date = DateTime.Parse(obj.serverTime);