在mvc webapi中反序列化Jsonobject
Deserializing Jsonobject in mvc webapi
我试图将一个 jSon 对象发送到 WebApiController 并将其反序列化为一个对象,但它只给我一个包含零和 null 的空对象。
虽然我更愿意进行模型绑定,但在 Webappi 中似乎无法像 AJAX 调用普通 MVC 控制器那样工作?
Javascript (jQuery)
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: JSON.stringify(data),
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
WebApiController 方法
public string PostStuff(JObject jsonObject)
{
Stuff stuff = JsonConvert.DeserializeObject<Stuff>(jsonObject.ToString());
return "thanks";
}
public class Stuff
{
public int siffra;
public string text;
}
JObject before deserialization: {"{\"siffra\":23,\"text\":\"Meddelande
från andra sidan!\"}": ""}
JObject 的 Insted 使用 Stuff 模型
public string PostStuff(Stuff stuff)
{
return "thanks";
}
WebApi 应该自动序列化它。
编辑
并确保 ajax 像这样发送正确的 json:
{
"siffra" : 23,
"text" : "Meddelande från andra sidan!"
}
编辑 2
试试这个电话
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: data,
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
{"{\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}": ""}
这是一个 JSON 对象,带有一个名为 {\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}
的 属性,其值为空字符串。这与 Stuff
类型完全不同。
与引用的 JS 代码不匹配,因此您没有包含某些内容。
我试图将一个 jSon 对象发送到 WebApiController 并将其反序列化为一个对象,但它只给我一个包含零和 null 的空对象。
虽然我更愿意进行模型绑定,但在 Webappi 中似乎无法像 AJAX 调用普通 MVC 控制器那样工作?
Javascript (jQuery)
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: JSON.stringify(data),
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
WebApiController 方法
public string PostStuff(JObject jsonObject)
{
Stuff stuff = JsonConvert.DeserializeObject<Stuff>(jsonObject.ToString());
return "thanks";
}
public class Stuff
{
public int siffra;
public string text;
}
JObject before deserialization: {"{\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}": ""}
JObject 的 Insted 使用 Stuff 模型
public string PostStuff(Stuff stuff)
{
return "thanks";
}
WebApi 应该自动序列化它。
编辑
并确保 ajax 像这样发送正确的 json:
{
"siffra" : 23,
"text" : "Meddelande från andra sidan!"
}
编辑 2 试试这个电话
var data = {
siffra : 23,
text : "Meddelande från andra sidan!"
}
$.ajax({
url: "api/Stuff/PostStuff",
method: "POST",
data: data,
success: function (result) {
console.log("SUCESS: " + result);
},
error: function (data) {
console.log("error: " + data.responseText);
}
});
{"{\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}": ""}
这是一个 JSON 对象,带有一个名为 {\"siffra\":23,\"text\":\"Meddelande från andra sidan!\"}
的 属性,其值为空字符串。这与 Stuff
类型完全不同。
与引用的 JS 代码不匹配,因此您没有包含某些内容。