2013-05-11 65 views
0

我有這個JSON文件反序列化JSON數據到C#

[{"Ticker":"610-KW", 
"Ric_Code":null, 
"Business_Description":"Sultan Center Food Products Company KSCC is a Kuwait-based public shareholding company that holds investments in diverse portfolio of companies within Kuwait and the Middle East, with a specific focus on the retail industry. The Company’s activities include the construction of central markets and restaurants; import, export and marketing of consumer goods; manufacturing of food products; operation of retail supermarkets, restaurants and catering services; trade and installation of telecommunication equipment; trade in readymade garments, shoes, suits, accessories and gifts, and investment in real estate and other industries. The Company also provides consulting and training services. Its business units are structured into seven divisions namely retail, restaurants, trading, fashion, telecom, security and investments. The Company owns and operates subsidiaries in Kuwait, Oman, Bahrain, Lebanon, Jordan, the United Arab Emirates, Egypt and Syria." 
,"Arabic_Name":"شركة مركز سلطان للمواد الغذائية (ش.م.ك.مقفلة)","English_Name":"SULTAN CENTER FOOD PRODUCTS COMPANY - K.S.C. (CLOSED)", 
"ValidationQuarters": 
[{"Period_End_Date":"2012-09-30T00:00:00","Purification_Percentage":0.0,"Status":"Fail","Standard":"QRC","OutStandingShares":578828800,"Treasury_Shares":null,"WhiteList":null}]} 

和我創造了這個類來反序列化

public class ValidationQuarter 
    { 
     public string Period_End_Date { get; set; } 
     public double Purification_Percentage { get; set; } 
     public string Status { get; set; } 
     public string Standard { get; set; } 
     public int OutStandingShares { get; set; } 
     public int? Treasury_Shares { get; set; } 
     public object WhiteList { get; set; } 
    } 

    public class QueryResult 
    { 
     public string Ticker { get; set; } 
     public object Ric_Code { get; set; } 
     public string Business_Description { get; set; } 
     public string Arabic_Name { get; set; } 
     public string English_Name { get; set; } 
     public List<ValidationQuarter> ValidationQuarters { get; set; } 
    } 

當調用該代碼

string result = c.getResultsByTicker(reqStr); 

       QueryResult qr = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryResult>(result); 

它會引發錯誤

無法將JSON數組反序列化爲類型'webservicetry.QueryResult'。 第1行,位置1.

回答

2

您的JSON代表QueryResult對象的數組。您試圖將它們反序列化爲單個實例。你只需要改變:

List<QueryResult> qrs = JsonConvert.DeserializeObject<List<QueryResult>>(result); 
+0

它的工作原理,非常感謝! :) – 2013-05-11 20:55:26