我的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结果不包括返回结果中的该字段。这是预期的行为吗?
答案 0 :(得分:3)
我发现修复程序是在json格式化程序序列化程序设置中指定以下内容:
jsonFormatter.SerializerSettings = new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Include
};
答案 1 :(得分: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);
结果没有值,结果仍会传递。只会没有价值传递给它。