我有以下脚本创建正确的对象结构传入的JSON
<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!";
}
的 '复杂' players
reservation
中的财产不会被填充。所有简单的值都可以!正如你在上面看到的,clubId
和courtNumber
有值。
我无法更改Json的格式。我必须创建一个正确的类结构。并用它来解析值...
任何人都知道正确的类结构创建?我上无法得到固定......
提示:为什么不使用_Json.net_,让您的生活更轻松的方式? – melancia