【发布时间】:2025-12-09 03:55:01
【问题描述】:
我有以下脚本
<script>
$(window).load(function () {
var model = [
{
"reservation":
{
"ticketId": "782274b8-10d9-444c-8f05-3117853e3ee0",
"clubId": 70656,
"courtNumber": 1,
"crud_name": "add",
"reservationtype_name": "toernooi",
"players" :
[
{
"player" : { "id": "18674992", "name": "Jan Jansen"}
},
{
"player": { "id": "19543840", "name": "Klaas Klaassen" }
}
]
}
},
{
"reservation":
{
"ticketId": "782274b8-10d9-444c-8f05-3117853e3ee0",
"clubId": 70656,
"courtNumber": 1,
"crud_name": "update",
"reservationtype_name": "toernooi",
"players":
[
{
"player": { "id": "18674992", "name": "Jan Jansen" }
},
{
"player": { "id": "19543840", "name": "Klaas Klaassen" }
}
]
}
}
];
alert(JSON.stringify(model));
$.ajax({
type: "POST",
data: JSON.stringify(model),
url: "http://localhost:59854/api/incomingapi",
contentType: "application/json",
dataType: 'json',
success: function (result) { },
error: function (errResult) { }
});
});
</script>
我有这些课程
namespace MySQLTestApp.Models
{
public class player
{
public string id { get; set; }
public string name { get; set; }
}
public class ReservationModelForJson
{
public string ticketId { get; set; }
public int clubId { get; set; }
public int courtNumber { get; set; }
public string crud_name { get; set; }
public string reservationtype_name { get; set; }
public IEnumerable<player> players { get; set; }
}
public class JsonBinder
{
public ReservationModelForJson reservation { get; set; }
}
}
这是我的控制器
public string Post(IEnumerable<JsonBinder> reservations)
{
int clubId = reservations.First().reservation.clubId;//is 70656
int courtNumber = reservations.First().reservation.courtNumber;//is 1
string playerId = reservations.First().reservation.players.First().id;//is null, should be 18674992
return "tnkx!";
}
reservation 中的“复杂”players 属性不会被填充。所有简单的值都可以!正如您在上面看到的,clubId 和 courtNumber 具有值。
我无法更改 Json 的格式。我必须创建一个正确的类结构。并使用它来解析值...
有人知道要创建的正确类结构吗?我无法修复它...
【问题讨论】:
-
提示:为什么不使用 Json.net 让您的生活更轻松?
标签: c# json ajax asp.net-web-api2 asp.net-mvc-5.2