2012-08-16 120 views
1

我有我的网页API下面的命令如下:的WebAPI犯规序列空字段

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结果不包括返回结果中的那个字段。这是预期的行为?

回答

3

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

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

我不认为这是预期的行为。至少在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); 

结果没有价值,结果依然会传承下去。没有任何价值可以传递。