我有一个网络应用程序,后端是在ASP.net中制作的。 ajax调用是正常的get请求
$.ajax({
url: 'myurl/updatejson',
contentType: "application/json; charset=utf-8",
data: data,
success: function (data) {
// do something
},
error: function (xhr, status, err){
console.error(xhr, status, err);
}
});
数据是一个简单的键,值对象格式正确。 C#后端是
public HttpStatusCodeResult UpdateJson(Dictionary<string, object> json){ //do something }
从此开始我希望c#中的json
等于key, value
,但出于某种原因,我得到key, [value]
。如果我将字典声明为Dictionary<string, string>
而不是Dictionary<string, object>
,一切正常并且我得到了预期的结果,因此它意味着由于某种原因将字符串转换为对象将其包装在数组中。
如何使用dictionary<string, object>
(因为值可以是字符串,int或boolean)而不将值包装在数组中?
答案 0 :(得分:0)
您是否尝试过使用动态类型解析?
public HttpResponseMessage UpdateJson([FromBody]dynamic value){
...
Console.WriteLine(value["field1"]);
}