如何在 MVC4 中将 Json 字符串转换为 C# 对象

How to Convert Json string into C# object in MVC4

我有一个 json 字符串,它是使用模型字符串值 属性 在控制器上提交的。我想将此 json 字符串转换为 C# 泛型列表对象。

下面是我的 json 字符串

{
    "MLIDandRackPosition": [
        {
            "MLID": "27",
            "PositionInRack": "3"
        },
        {
            "MLID": "24",
            "PositionInRack": "4"
        }
    ]
}

下面是我的class

  public class MLIDandRackPosition
    {
        public int MLID { get; set; }
        public int PositionInRack { get; set; }
    }

我想要控制器操作方法上 json 字符串的 MLIDandRackPosition class 列表。

请帮忙

我强烈建议您使用 .NET 平台的 NewtonSoft 库,在谈到 JSON 序列化时是最好的。

使用 JSON.NET 你可以在一行中完成:

MLIDandRackPosition myObj = JsonConvert.DeserializeObject<MLIDandRackPosition>(myString);

有关 JSON.NET 的更多信息,请参阅 http://www.newtonsoft.com/json/help/html/Introduction.htm

您的对象将正确绑定到

public ActionResult SomeAction(IEnumerable<MLIDandRackPosition> MLIDandRackPosition)

如果设置以下ajax个参数

var data = { "MLIDandRackPosition": [ { "MLID": "27", "PositionInRack": "3" }, { "MLID": "24", "PositionInRack": "4" } ] };

$.ajax({
  ...
  traditional: true,
  contentType: "application/json; charset=utf-8",
  data: JSON.stringify(data)
})

尽管我建议更改参数名称(比如 model)和 var data = { "model": [ { "MLID": ....] };