2015-02-06 153 views
0

我有一个json字符串,它使用Model字符串值属性在控制器上提交。我想将此json字符串转换为c#通用列表对象。如何将Json字符串转换为MVC4中的C#对象

下面是我的JSON字符串

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

下面是我

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

我想MLIDandRackPosition类的从控制器的操作方法JSON字符串列表。

请帮

+0

它的容易找到相同的问题:http://stackoverflow.com/questions/2546138/deserializing-json-data-to-c-sharp-using-json-net – MacGyver 2015-02-06 07:14:09

+1

possi ble重复的[在C#中解析JSON](http://stackoverflow.com/questions/1212344/parse-json-in-c-sharp) – Kutyel 2015-02-06 07:16:16

回答

1

你的对象将正确地绑定到

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": ....] };

2

我强烈建议你NewtonSoft库.NET平台,是最好的JSON序列化的交谈时。

2

随着JSON.NET你可以做,在一行:

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

更多有关JSON.NET见http://www.newtonsoft.com/json/help/html/Introduction.htm

+1

Mr. Dictus非常有帮助请在+1后添加0,因为我不能在SO UI中找到选项。 – 2016-03-16 11:48:36

相关问题