JSON.stringify忽略嵌套对象

时间:2016-03-20 14:51:55

标签: javascript jquery json ajax asp.net-mvc

我目前正在处理将JSON数据发送到My Controller的问题。

我发现当传递一个包含嵌套对象的对象时,嵌套对象将为null。我无法弄清楚我错过了什么......

我的服务器端看起来像这样:

[HttpPost]
public ActionResult ApplyChanges(List<Change> pChanges)
{
    //the Issue occurs here in every object of pChanges:
    //IgnoreFlag was populated correctly, but the Detection Object is null...?
}

public class Change
{
  public Detection Detection { get; set; }
  public bool IgnoreFlag { get; set; }
}

我的客户端看起来像这样:

var data = [
  {
    "Detection": {
     "PropertyOld": 1,
     "PropertyNew": 2, 
    },
    "IgnoreFlag": true
  },
  {
    "Detection": {
     "PropertyOld": 3,
     "PropertyNew": 4, 
    },
    "IgnoreFlag": false
  }
]

$.ajax({
  type: "POST",
  url: "/Url/To/ApplyChanges",
  data: JSON.stringify({"pChanges": data}),
  contentType: "application/json",
  success: function (data, textStatus, jqXHR) {
    //do something here
});

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

使用

JSON.stringify(data) 

而不是使用

JSON.stringify({"pChanges": data})