2015-02-06 98 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

相關問題