2014-04-10 25 views
1

我有這樣的JSON字符串:{"1":[1,3,5],"2":[2,5,6],"3":[5,6,8]}反序列化JSON在字典中的Web API:總是空字符串

我想將它發送到網絡API控制器不使用Ajax請求改變:

$.ajax({ type: "POST", url: "Api/Serialize/Dict", data: JSON.stringify(sendedData), dataType: "json" });

在網頁API我有這樣的方法:

[HttpPost] 
public object Dict(Dictionary<int, List<int>> sendedData) 
{ 
    var d1 = Request.Content.ReadAsStreamAsync().Result; 
    var rawJson = new StreamReader(d1).ReadToEnd(); 
    sendedData=Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<int, List<string>>>(rawJson); 
    return null; 
} 

rawJson始終是空字符串。我不明白爲什麼? 但d1.Length與JSON字符串中的相同。我不知道如何從d1得到JSON字符串...

謝謝!

+0

嘗試使用[FromBody]屬性'公共對象字典([FromBody]字典> sendedData)' – Andrew

+0

我試圖 - 同樣的情況... –

+0

用對象替換sendedData的類型,看看你的確在那裏得到了什麼 – Andrew

回答

1

使用內容類型參數執行時,而不是的dataType AJAX調用:

$.ajax({ 
     type: "POST", 
     url: "Api/Serialize/Dict", 
     contentType: "application/json; charset=utf-8", //! 
     data: JSON.stringify(sendedData) 
});