How do I / is it possible to pass in a json object to a webapi controller (POST) and not have a class to map it to, but rather handle it as arbitrary content?
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