C# 不显示数据,仅在web API C中显示括号#
我对C#中的Web API相当陌生 这是我的JSON响应: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>",
{
"<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;
}