how to post arbitrary json object to webapi how to post arbitrary json object to webapi json json

how to post arbitrary json object to webapi


You can have your post method that takes in a HttpRequestMessage to by pass the model binding logic and you can read the content of the request directly:

    public HttpResponseMessage Post(HttpRequestMessage req)    {        var data = req.Content.ReadAsStringAsync().Result; // using .Result here for simplicity...        ...    }

By the way, the reason why the action that takes in JObject doesn't work is because of 'ObjectId("...")' that is used as the value of "_id" in your data...


We passed json object by jquery, and parse it in dynamic object. it works fine. this is sample code:

ajaxPost:...Content-Type: application/json,data: {          "name": "Jack",           "age": "12"      }...

webapi:

[HttpPost]public string DoJson2(dynamic data){    string name = data.name;    int age = data.age;    return name;}

similary question on stackoverflow: WebAPI Multiple Put/Post parameters


In your input, "_id": ObjectId("5069f825cd4c1d590cddf206") is what is breaking the JSON materialization on the server. Removing ObjectId and using "_id" : "5069f825cd4c1d590cddf206" works with JObject as well as Dictionary<string, object>