类中的C#Json格式

类中的C#Json格式,c#,json,C#,Json,我有一个C班 我从一个存储过程的EF6.0函数中填充 我被要求为该类的每个记录创建一个这种格式的Json { "Ktype": [ { "from" "to" "flag" } ] } 我对Json有一点经验。这里的一些人帮我赶上了 直到现在我才知道“outer”属性(我不知道如何称呼它…对不起)来自类名 在本例中,Ktype是类的一部分 如何用Json序列化这个类,并将Ktype作为外部Json属性 我想要这样的东西: {

我有一个C班

我从一个存储过程的EF6.0函数中填充

我被要求为该类的每个记录创建一个这种格式的Json

{
"Ktype": [
    {
        "from"
        "to"
        "flag"
    }
]
}

我对Json有一点经验。这里的一些人帮我赶上了

直到现在我才知道“outer”属性(我不知道如何称呼它…对不起)来自类名

在本例中,Ktype是类的一部分

如何用Json序列化这个类,并将Ktype作为外部Json属性

我想要这样的东西:

 {
        "TRC": [{"from":"2016-02-09","to":"2016-02-16","flag":true}]
 }

{
        "TRX": [{"from":"2016-02-12","to":"2016-02-18","flag":false}]
}

如果我理解正确,也许这会帮助你:

public class occ
{
    public List<Ktype> ktype { get; set;}

    public occ()
    {
        this.ktype = new List<Ktype>();
    }
}

public class Ktype
{
    public datetime from    { get; set; }
    public datetime to      { get; set; }
    public flag     bool    { get; set; }
}
公共级occ
{
公共列表ktype{get;set;}
公共货币监理署()
{
this.ktype=新列表();
}
}
公共类Ktype
{
来自{get;set;}的公共日期时间
公共日期时间{get;set;}
公共标志bool{get;set;}
}

当填充和序列化以下内容时,会产生下面的
json

public class Root
{
    public List<Ktype> Ktype { get; set; } = new List<Ktype>();
}
public class Ktype
{
    public DateTime from { get; set; }
    public DateTime to { get; set; }
    public bool flag { get; set; }
}

创建一个KTypeDto,如下所示

public class KTypeDto
{
    public List<KType> KTypes { get; set;}
}

public class KType
{
    public Datetime From { get; set; }
    public Datetime To { get; set; }
    public Flag Bool { get; set; }
}
公共类KTypeDto
{
公共列表k类型{get;set;}
}
公共类KType
{
来自{get;set;}的公共日期时间
公共日期时间{get;set;}
公共标志Bool{get;set;}
}

使用newtonsoft库中的
序列化对象

string json = JsonConvert.SerializeObject(new occ(), Formatting.Indented);

有关详细信息

为什么
ktype
成为数组(它只是类中的一个字符串)?如何在类和所需的json之间映射?使用什么序列化程序?@James ISO 8601-没问题。我可以处理这个问题。@jamice我们有一组数据(类集)来提供信息。一位客户在他的json结果中询问了上述转换。您应该创建与json格式匹配的类型,或者只使用这些类型,或者映射到这些类型,然后从这些类型创建json,这将使处理一个属性成为数组变得更容易。谢谢Luca,但我认为在您的示例中找不到ktype数据。ktype是一个字符串,其数据应该存在于json中。
public class KTypeDto
{
    public List<KType> KTypes { get; set;}
}

public class KType
{
    public Datetime From { get; set; }
    public Datetime To { get; set; }
    public Flag Bool { get; set; }
}
string json = JsonConvert.SerializeObject(new occ(), Formatting.Indented);