的WebAPI犯规序列空字段(WebApi doesnt serialize null fields

2019-10-17 04:00发布

我在我的网页API有以下以下命令:

return Request.CreateResponse(HttpStatusCode.OK, 
    MyDBContext.DB.Database.SqlQuery<MyCustomerClass>("SELECT * FROM CUSTOMER").ToList());

下面是表:

CREATE TABLE [dbo].[Customer] (
    [CustomerID] [int] NOT NULL,
    [FirstName] [nvarchar](50) NOT NULL,
    [LastName] [nvarchar](50) NULL,
    CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
([CustomerID] ASC) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE = OFF, 
      IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) 
      ON [PRIMARY]
) ON [PRIMARY]

GO

我发现,从请求的WebAPI数据时,如果该字段为null ,则返回JSON结果不包括在返回结果的那场。 这是预期的行为?

Answer 1:

我发现修复是指定在JSON格式串设置如下:

jsonFormatter.SerializerSettings = new JsonSerializerSettings() 
{ 
   NullValueHandling = NullValueHandling.Include 
};


Answer 2:

我不认为这是正常现象。 至少在JSON的条款。 因为我没有使用过它,我不能说太多有关的WebAPI。 在使用JSON,如果我发出下面的代码我的一个项目:

# Package our response into an array... 
$response = array("type"=>"remove_from_distribution_list","results");                   

# And send it back to XMLHttpRequest object encoded...       
echo json_encode($response);

与不具有价值的结果 ,结果将依然传承下去。 有也只是没有沿着它传递的值。



文章来源: WebApi doesnt serialize null fields