【发布时间】:2014-12-12 20:20:06
【问题描述】:
我正在使用 C#,我的项目是 .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
}
我不知道该怎么做。我知道必须有另一个类,我会将对象反序列化到该类,但在类的结构方面需要帮助。
我将非常感谢任何帮助。谢谢!!!
更新:
我需要与此类似的代码 JsonConvert.DeserializeObject ... 但是,我的 json 对象中有“jsonData”,我真的不需要它。这用于在 ajax 调用和 WebMethod 之间传递数据
"data": JSON.stringify({ jsonData : aoData })
那么在反序列化对象之前是否有额外的步骤来删除它?
更新:
改变了
[WebMethod]
public static string PostAjaxMethod(List<object> jsonData)
到这里
[WebMethod]
public static string PostAjaxMethod(List<MyTestClass> jsonData)
添加了一个类
public class MyTestClass
{
public string name { get; set; }
public string value { get; set; }
}
几乎是我想要的,除了我需要它是这种格式
sEcho would be set to 1
iColumns would be set to 2 etc
【问题讨论】:
-
您的问题是您的
json不代表对象列表。我建议你删除根jsondata。并开始做正确的事情,创建一个代表您的json对象的 C# 类... -
@gustavodidomenico 将 Json 对象传递给 aps.net 中的 [WebMethod] 我必须命名它!这就是 jsonData 存在的原因。在我的 [WebMethod] 中,我得到公共静态字符串 PostAjaxMethod(List
标签: .net ajax json deserialization webmethod