1

我的 web 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 结果,则返回结果中不包含该字段。这是预期的行为吗?

4

2 回答 2

3

我发现解决方法是在 json 格式化程序序列化程序设置中指定以下内容:

jsonFormatter.SerializerSettings = new JsonSerializerSettings() 
{ 
   NullValueHandling = NullValueHandling.Include 
};
于 2012-08-17T00:59:35.217 回答
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);

结果没有价值,结果仍然会被传递。旁边不会有任何值传递。

于 2012-08-16T23:57:55.587 回答