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 を使用したことがないので、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 に答える