C# 不显示数据,仅在web API C中显示括号#

C# 不显示数据,仅在web API C中显示括号#,c#,asp.net-web-api,C#,Asp.net Web Api,我对C#中的Web API相当陌生 这是我的JSON响应: { "<chart_type>": [ { "name": "entity" }, { "display_name": "entity display name" }, { "kpi": [ { "name":"<kpi>",

我对C#中的Web API相当陌生

这是我的JSON响应:

{
    "<chart_type>": [
        { "name": "entity" },
        { "display_name": "entity display name" },
        {
            "kpi": [
                {
                    "name":"<kpi>",
                    "display_name":"test",
                    "required": [
                        { "test": "test" },
                        { "test1": "test" }
                        ],
                    "optional": [        
                        { "test": "test" },
                        { "test": "test" }
                        ],
                    "objects": {
                        "<Fieldname>": 
                        {
                            "display_name":"<entity display name>",
                            "type": "<select or text>",
                            "default": "default value (already selected)",
                            "list": {
                                "<id>": "<value>"
                            }
                        }
                    }
                }
            ]
        }
    ]
}
{
"": [
{“名称”:“实体”},
{“显示名称”:“实体显示名称”},
{
“kpi”:[
{
“名称”:“,
“显示名称”:“测试”,
“必需”:[
{“测试”:“测试”},
{“test1”:“test”}
],
“可选”:[
{“测试”:“测试”},
{“测试”:“测试”}
],
“对象”:{
"": 
{
“显示名称”:“,
“类型”:“,
“默认值”:“默认值(已选择)”,
“名单”:{
"": ""
}
}
}
}
]
}
]
}
但在我使用邮递员后,这是显示:

这是我的定义

public partial class Test
{
    [JsonProperty("<chart_type>", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public ChartType[] chart_type { get; set; }
}

public partial class ChartType
{
    [JsonProperty("name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string entity_name { get; set; }

    [JsonProperty("display_name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string entity_display_name { get; set; }

    [JsonProperty("kpi", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public Kpi[] Kpi { get; set; }
}

public partial class Kpi
{
    [JsonProperty("name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string kpi_name { get; set; }

    [JsonProperty("display_name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string kpi_display_name { get; set; }

    [JsonProperty("required", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public RequiredElement[] kpi_required { get; set; }

    //[JsonProperty("optional", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    //public Optional[] kpi_optional { get; set; }

    [JsonProperty("objects", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public Objects Objects { get; set; }
}

public partial class RequiredElement
{
    [JsonProperty("test", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string Test { get; set; }

    [JsonProperty("test1", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string Test1 { get; set; }
}

public partial class Objects
{
    [JsonProperty("<Fieldname>", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public Fieldname Fieldname { get; set; }
}

public partial class Fieldname
{
    [JsonProperty("display_name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string DisplayName { get; set; }

    [JsonProperty("type", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string Type { get; set; }

    [JsonProperty("default", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    public string Default { get; set; }

    //[JsonProperty("list", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
    //public List List { get; set; }
}
公共部分类测试
{
[JsonProperty(“,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共图表类型[]图表类型{get;set;}
}
公共部分类ChartType
{
[JsonProperty(“name”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串实体_name{get;set;}
[JsonProperty(“display_name”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串实体\u显示\u名称{get;set;}
[JsonProperty(“kpi”,必选=必选。不允许,NullValueHandling=NullValueHandling.Ignore)]
公共Kpi[]Kpi{get;set;}
}
公共部分类Kpi
{
[JsonProperty(“name”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串kpi_name{get;set;}
[JsonProperty(“display_name”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串kpi_显示_名称{get;set;}
[JsonProperty(“必需”,必需=必需。不允许,NullValueHandling=NullValueHandling.Ignore)]
public requireElement[]kpi_required{get;set;}
//[JsonProperty(“可选”,必需=必需。不允许,NullValueHandling=NullValueHandling.Ignore)]
//公共可选[]kpi_可选{get;set;}
[JsonProperty(“objects”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共对象对象{get;set;}
}
公共部分类requireElement
{
[JsonProperty(“test”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串测试{get;set;}
[JsonProperty(“test1”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串Test1{get;set;}
}
公共部分类对象
{
[JsonProperty(“,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字段名字段名{get;set;}
}
公共部分类字段名
{
[JsonProperty(“display_name”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串DisplayName{get;set;}
[JsonProperty(“type”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串类型{get;set;}
[JsonProperty(“默认”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
公共字符串默认值{get;set;}
//[JsonProperty(“list”,Required=Required.DisallowNull,NullValueHandling=NullValueHandling.Ignore)]
//公共列表{get;set;}
}

对DTO使用
[DataContract]
[DataMember(EmitDefaultValue=false)]

您已经覆盖了默认的ASP.NET JSON序列化程序,如果您使用的是ASP.NET Web API,那么您应该知道默认的JSON序列化程序不是
DataContractJsonSerializer
(DCJS),而是JSON.NET。因此,除非明确配置
JsonMediaTypeFormatter
以使用DCJS,否则需要另一个属性来获得相同的行为(
JsonProperty
,及其
DefaultValueHandling
属性)

如需了解更多信息,请遵循此

公共列表定义()
{
var all=\u db
.kpi_定义
.包括(“KPI”)
.选择(dl=>新根目录
{
//图表类型=dl.图表类型,
图表类型=新列表
{
新图表{entity_name=dl.entity_name,
实体显示名称=dl.entity显示名称,
kpi=新列表
{
新KPI{
kpi\u name=dl.kpi\u name,
kpi\u display\u name=dl.kpi\u display\u name,
必需=新列表
{
新要求
{
//kpi_必需=dl.kpi_必需
}
},
可选=新列表
{
新可选
{
//kpi_可选=dl.kpi_可选
[DataContract]
public partial class Fieldname
{
[DataMember(EmitDefaultValue = false)]
[JsonProperty("display_name", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
public string DisplayName { get; set; }

[JsonProperty("type", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
public string Type { get; set; }

[JsonProperty("default", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
public string Default { get; set; }

//[JsonProperty("list", Required = Required.DisallowNull, NullValueHandling = NullValueHandling.Ignore)]
//public List List { get; set; }
}
public List<Root> definition()
        {
            var all = _db
                .kpi_definition
                .Include("KPI")
                .Select(dl => new Root
                {
                    //chart_type = dl.chart_type,
                    chart_type = new List<Chart>
                    {
                       new Chart { entity_name = dl.entity_name ,
                                   entity_display_name = dl.entity_display_name,
                                   kpi = new List<KPI>
                                   {
                                      new KPI {
                                               kpi_name = dl.kpi_name,
                                               kpi_display_name = dl.kpi_display_name,
                                               required = new List<Required>
                                               {
                                                   new Required
                                                   {
                                                       //kpi_required = dl.kpi_required
                                                   }
                                               },
                                               optional = new List<Optional>
                                               {
                                                   new Optional
                                                   {
                                                       //kpi_optional = dl.kpi_optional
                                                   }
                                               },
                                               objects = new List<Objects>
                                               {
                                                   new Objects
                                                   {
                                                       field_name = new List<FieldName>
                                                       {
                                                           new FieldName
                                                           {
                                                            entity_display_name = dl.entity_display_name,
                                                            type = "Select or Text",
                                                            @default = "default value(already selected)",
                                                            list = "",
                                                            ID = dl.ID
                                                           }
                                                       }

                                                   }
                                               }
                                              }
                                   }
                                 }
                    }
                }).ToList();
            return all;
        }