Десериализация JSON не поддерживается

0

У меня возникла проблема десериализации массива в.NET MVC5, любая помощь будет оценена.

JsonList psl = (new JavaScriptSerializer()).Deserialize<JsonList>(id);

Мои объекты

[Serializable]
public class JsonList
{
    public object[] id { get; set; }
    public List<children> children { get; set; }
}
[Serializable]
public class children
{
    public List<object> id { get; set; }
}

Json Array

 "[
   {\"id\":20,\"children\":[]},{\"id\":21,\"children\":[{\"id\":23},
        {\"id\":22},   {\"id\":24},
   {\"id\":26}]},{\"id\":27,\"children\":[{\"id\":56},{\"id\":57},
        {\"id\":51},{\"id\":50},
   {\"id\":55},{\"id\":52},{\"id\":65},{\"id\":53}]},
        {\"id\":28,\"children\":[{\"id\":29},
   {\"id\":30},{\"id\":32},{\"id\":79}]},
       {\"id\":33,\"children\":[{\"id\":34},{\"id\":35},
   {\"id\":39}]},{\"id\":40,\"children\":[{\"id\":41},{\"id\":42},
           {\"id\":43},{\"id\":44},
   {\"id\":75}]},{\"id\":45,\"children\":[{\"id\":47},
           {\"id\":82},{\"id\":49}]}
]"

Jquery Sortable

var UINestable=function(){
var updateOutput=function(e){
    var list = e.length ? e : $(e.target), output = list.data('output');
    var dataid = window.JSON.stringify(list.nestable('serialize'));
    if (window.JSON) {
        alert(dataid);
        $.ajax(
            {
                type: 'POST',
                url: '/Admin/Menuler/MenuSiralama',
                data: "{id:'" + dataid + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: 'json',
                success: function(result) {
                },
                error: function() {
                }
            }
        );
    }       
    else{console.log('JSON browser support required for this demo.');}
};
return{init:function(){
      $('#nestable_list_1').nestable({group:2})
               .on('change',updateOutput);}};
}();
  • 0
    Вы используете библиотеку json.net?
Теги:
asp.net-mvc-5
jquery-ui-sortable

1 ответ

0

Попробуй это:

[Serializable]
public class JsonList
{
    public object[] id { get; set; }
    public children children { get; set; }
}

Вам не нужно учитывать свойство children как List в соответствии с вашим образцом данных JSON, который вы пытаетесь выполнить POST.

Любое свойство child должно быть типа класса child (вы объявили его как список классов детей) или поддерживаете сбор детского класса в своей структуре JSON.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню