2015-10-17 45 views
0

如何JSON數組轉換爲對象的名單在C#如何轉換JSON數組在C#中列出

的json數組:

{"allAdultFares":["0-5000.00","1-8000.00"],"Flag":"N"}, 

類:

public List<Sellrate> allAdultFares { get; set; } 



    public class Sellrate 
    { 
    public string Singe { get; set; } 
    public string Double { get; set; } 
    } 

我需要Ø/p:

Singe:5000

Double:8000

+0

您可以顯示JSON的幾行? –

+0

就我所見,您的班級完全不會模擬您的JSON。我建議你創建一個* * * *爲你的JSON建模的類(例如,爲'allAdultFares'提供'List '屬性,以及'Flag'的'string'屬性),然後將其轉換爲你的'SellRate'類。 –

+0

我更新了我的代碼 –

回答

1

我改變&得到O/P

 public string[] allAdultFares{ get; set; } 
1

這裏有一些簡單的代碼來解析你的json,而不用創建一個合適的類來表示它的結構,就像Jon建議的那樣。我可能誤會了所以在這裏你JSON的確切結構樣品JSON和我一起工作,也許你就需要進行小的調整,以它是否適合你的情況:

{ 
    "rateDetails":[ 
    { 
     "date":"19-9-2015", 
     "allAdultFares":["0-5000.00","1-8000.00"], 
     "Flag":"N" 
    }, 
    { 
     "date":"20-9-2015", 
     "allAdultFares":["0-9000.00","1-9000.00"], 
     "Flag":"N" 
    } 
    ] 
} 

我用JSon.Net解析文件,你可以從nuget獲取它。

 var input = JObject.Parse(File.ReadAllText("sample.json")); 
     var rateDetails = (JArray)input["rateDetails"]; 
     var a = rateDetails 
        .Select(t => (JArray)t["allAdultFares"]) 
        .Select(t => 
         new Sellrate() 
         { 
          Singe = t[0].ToString().Split('-')[1].Replace(@"""", ""), 
          Double = t[1].ToString().Split('-')[1].Replace(@"""", "") 
         }).ToList(); 
+0

謝謝@Maor Veitsman –

+0

沒問題。希望它有幫助 –

0
Single: { "field1":"value1","field2":"value2" } 
Array: [ { "field1":"value1","field2":"value2" }, { "field1":"value1","field2":"value2" } ] 


public class Test 
{ 
    public string field1 { get; set; } 
    public string field2 { get; set; } 
} 


Test myDeserializedObj = (Test)JavaScriptConvert.DeserializeObject(Request["jsonString"], typeof(Test)); 


List<test> myDeserializedObjList = (List<test>)Newtonsoft.Json.JsonConvert.DeserializeObject(Request["jsonString"], typeof(List<test>));