Вот что я хочу, чтобы отправить к моему ServiceStack веб-службы:Deserialize массив с ServiceStack
$.ajax({
url: 'http://localhost:8092/profiles',
type:'POST',
data: {
FirstName : "John",
LastName : "Doe",
Categories : [ "Category 1", "Category 2", "Category 3" ]
},
success: function (response) { $('#response').append('Success!'); },
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status + ' Error: ' + thrownError);
},
dataType: "json"
});
А вот класс назначения:
[Route("/profiles", "POST")]
public class ProfileRequest
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
public string[] Categories{ get; set; }
}
Все поля заселяется за исключением массив. Может ServiceStack просто не обрабатывать объекты этой сложности или я что-то упускаю?
Примечание: Я видел Unable to deserialize array, который предлагает использовать JSON.stringify(), но это решение до сих пор, кажется, не работает, на самом деле это делает его хуже, вызывая никаких данных не будет десериализации.
Да, это была одна из вещей, которые я уже пробовал, но это не привело к тому, что данные не были десериализованы, а не только массив. –
Похоже, я использую 3.9.56.0 –
Это все еще не работает. Глядя на мои объекты C#, все значения равны нулю. Если я удалю JSON.stringify(), все будет заполнено, кроме массива. –