有这么多的json序列化/反序列化选项,所以我不确定使用哪一个是正确的,也不确定为什么有这么多选项来做看似相同的事情。我见过JsonConvert、JsonSerializer、JavaScriptSerializer和其他几个。
寻找关于正确地将json数组反序列化为复杂对象的c#列表的帮助。
JQUERY:
var users = [];
for (var i = 0; i < response.length; i++)
{
var u =
{
Id: response[i].id,
UserName: response[i].username,
FirstName: response[i].first_name,
LastName: response[i].last_name
};
users[i] = u;
}
var ul = JSON.stringify({ 'userlist': users});
$.ajax({
type: "POST",
url: "/myurl/addusers",
data: { 'userlist': ul },
dataType: "json",
success: function (response) {
},
error: function (xhr, status, error) {
}
});C# (这不起作用):
[HttpPost]
public ActionResult AddUsers(string userlist)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
var users = ser.Deserialize<List<User>>(userlist);
...
}
[Serializable]
public class User
{
public string Id { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}发布于 2013-07-12 00:07:55
更改您的操作以接受用户列表,模型绑定器将处理其余部分,如下所示:
[HttpPost]
public ActionResult AddUsers(List<User> users)
{
//use the
}更改javascript以直接向用户发送数组,而不使用代理属性:
var ul = JSON.stringify(users);
$.ajax({
type: "POST",
url: "/myurl/addusers",
data: ul ,
dataType: "json",
success: function (response) {
},
error: function (xhr, status, error) {
}
});https://stackoverflow.com/questions/17598154
复制相似问题