Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deserialize JSON into dictionary in Web Api controller

I have such JSON string: '{"1":[1,3,5],"2":[2,5,6],"3":[5,6,8]}'

I want to send it to the Web Api Controller without changing using ajax request:

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

In Web Api I have such method:

    [HttpPost]
    public object Dict(Dictionary<int, List<int>> sendedData)
    {
        //code goes here
        return null;
    }

And always sendedData == null. Another words: I don't know how to deserialize JSON into (Dictionary<int, List<int>>.

Thank you for answer.

like image 572
Taras Strizhyk Avatar asked Nov 01 '22 01:11

Taras Strizhyk


1 Answers

Try this

 [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);

    }
like image 174
Nilesh Gajare Avatar answered Nov 12 '22 11:11

Nilesh Gajare