2012-08-16 119 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); 

結果沒有價值,結果依然會傳承下去。沒有任何價值可以傳遞。