Как правильно десериализовать строку JSON в класс, содержащий вложенный список другого класса

У меня есть следующий граф объектов, и я использую JQuery $ .Ajax () для отправки этого идентичного объекта «View» в JSON (строковый) из браузера в метод страницы в ASP.Net. Десериализация JAvascript работает для всех строк и int в классе View, но My List пуст.

Что я пробовал: Используя инструменты chrome dev, я взял строковый JSON, создал модульный тест и использовал как DataContractJsonSerializer , так и JavaScriptSerializer . Объект DataContractJsonSerializer десериализовал мой граф объектов правильно, но JavaScriptSerializer сбросил мой список. Как я могу получить правильную десериализацию метода моей страницы?

public class View
{
    public string Text { get; set; }
    public string AnotherText { get; set; }
    public Int SomeInt { get; set; }
    public List<DataItem> { get; set; }
}

public class DataItem
{
    public Person person {get;set}
}

public class Person
{
    public int Age {get;set}
}

   var dataa = {mqvm: mqvmJSON };
    $.ajax({
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify( dataa ),
        url: "GoHere.aspx/WebMethodName",
        success: function(data) {
            alert(data.d);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText + ' ' + errorThrown);
        }
    });

Вместо этого (view obj как параметр).

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public static string CreateResponseReview(View mqvm)
    { 
        return "Success";
    }

как я могу это получить? (параметр строки)

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public static string CreateResponseReview(string mqvm)
    { 
        //do manual JSON deserialization here.

        return "Success";
    }

Мой JSON выглядит так.

    {
    "Text": "6",
    "AnotherText":"wow"
    "SomeInt": 5,
    "DataItem":[
        {
            "person":{
                "Age":23
            }
        },
        {
            "person":{
                "Age":42
            }
        }
    ]
}
6
задан EbbnFlow 27 September 2011 в 13:13
поделиться