Нужна помощь в десериализации объекта JSON в asp.net внутри [WebMethod]

Я использую С#, а мой проект - проект веб-сайта.NET 3.5. Попытка десериализации объекта Json выглядит следующим образом:

{
"jsonData": [
 {
 "name": "sEcho",
 "value": 1
 },
 {
 "name": "iColumns",
 "value": 2
 },
 {
 "name": "sColumns",
 "value": ","
 },
 {
 "name": "iDisplayStart",
 "value": 0
 },
 {
 "name": "iDisplayLength",
 "value": 10
 },
 {
 "name": "mDataProp_0",
 "value": 0
 },
 {
 "name": "sSearch_0",
 "value": ""
 },
 {
 "name": "bRegex_0",
 "value": false
 },
 {
 "name": "bSearchable_0",
 "value": true
 },
 {
 "name": "bSortable_0",
 "value": true
 },
 {
 "name": "mDataProp_1",
 "value": 1
 },
 {
 "name": "sSearch_1",
 "value": ""
 },
 {
 "name": "bRegex_1",
 "value": false
 },
 {
 "name": "bSearchable_1",
 "value": true
 },
 {
 "name": "bSortable_1",
 "value": true
 },
 {
 "name": "sSearch",
 "value": ""
 },
 {
 "name": "bRegex",
 "value": false
 },
 {
 "name": "iSortCol_0",
 "value": 0
 },
 {
 "name": "sSortDir_0",
 "value": "asc"
 },
 {
 "name": "iSortingCols",
 "value": 1
 }
]
}

Я также установил в своем проекте http://james.newtonking.com/json

[WebMethod]
 public static string PostAjaxMethod(List<object> jsonData)
 {
 // Code here to deserialize the object
 }
 <p> Я не могу понять, как это сделать. Я знаю, что должен быть другой класс, в который я буду десериализовать объект, но мне нужна помощь в структуре класса.</p> <p> Я был бы очень признателен за любую помощь. Спасибо!!!</p> <p> ОБНОВИТЬ:</p> <p> Мне нужен код, который будет похож на этот JsonConvert.DeserializeObject... Однако у меня есть jsonData в моем json-объекте, и мне это действительно не нужно. Это используется для передачи данных между ajax-вызовом и WebMethod</p> <pre class="prettyprint linenums"><code>"data": JSON.stringify({ jsonData : aoData })</code>

так есть ли еще один шаг, чтобы удалить его перед десериализацией объекта?

ОБНОВИТЬ:

Изменено

<code>[WebMethod]
 public static string PostAjaxMethod(List&lt;object&gt; jsonData)
 &lt;p&gt; к этому&lt;/p&gt; &lt;pre class="prettyprint linenums"&gt;&lt;code&gt;[WebMethod]
 public static string PostAjaxMethod(List&lt;mytestclass&gt; jsonData)
&lt;/mytestclass&gt;</code>

добавлен класс

<code>public class MyTestClass
{
 public string name { get; set; }
 public string value { get; set; }
}</code>

почти то, что я хочу, кроме того, что мне нужно, чтобы он был в этом формате

<code>sEcho would be set to 1
iColumns would be set to 2 etc</code>
1 ответ

В этом случае параметр для WebMethod jsonData должен быть строкой.

Затем вы создаете объект JArray и инициализируете его в результате разбора строки. А затем вы можете получить доступ к свойствам в виде многомерного словарного массива. Обратите внимание, что для правильного анализа строки это должен быть массив. В javascript вы можете создать массив таким образом:

var jsonObject = {
 "name" : "Foo"
};
var arr = [];
arr.push(jsonObject);

//Now send the object to the server
//Notice that you must use JSON.stringify() in order to send the data to the server

Код Asp.net:

[WebMethod]
public static string PostAjaxMethod(string jsonData)
{
 JArray _jsonData = JArray.Parse(jsonData);
 string name = _jsonData[0]["name"].toString();
}

licensed under cc by-sa 3.0 with attribution.