2014-08-31 4 views
1

Я не смог найти ответ в существующих потоках для моей проблемы. У меня есть эта строка JSON:Разбор JSON с fastJson в C#

{ 
    "Count": 4, 
    "Result:000": { 
     "Score": 4.571, 
     "W0DateTime": "2014-08-28 23:00:00", 
     "W0Value": 1.0164, 
     "W0Fibonacci": 0, 
     "Direction": "SHORT", 
     "StartDate": "2014-08-29 16:30:00", 
     "EndDate": "2014-08-28 01:00:00", 
     "BarsCalculated": 80 
    } 
} 

Как получить содержание Result:000?

У меня есть этот код:

... 
    public Dictionary<string, object> dictionaryObject; 

    public void jsonInitStructure(string sJsonString) 
    { 
     dictionaryObject = (Dictionary<string , object>) fastJSON.JSON.Parse(sJsonString); 
    } 
... 

Count легко: Convert.ToInt32(dictionaryObject ["Count"]), но как я могу получить значения из Result:000? Например (Score, StartDate, EndDate, ...)

ответ

1

Вы попробовали лить его?

var result000 = (Dictionary<string, object>)dictionaryObject["Result:000"]; 
var result000Score = Convert.ToDouble(result000["Score"]); 
+1

Идеальный Ролинг! Это работает именно так, как я этого хотел! Большое вам спасибо за помощь. Кажется, это невероятно просто, когда я читал его, но я не был способен сам это выяснить! –

0

Plese попробовать ...

Array objList = (Array)dictionaryObject["Result:000"] ; 
foreach (object obj in objList) 
{ 
    Dictionary<string, object> dictionary = new Dictionary<string, object>(); 
    dictionary = (Dictionary<string, object>)obj; 

    var var1 = dictionary["Score"].ToString(); 
    var var2 = dictionary["W0DateTime"].ToString(); 

} 
+0

Благодарим за помощь. Это не работает. Эта ошибка возникает: объект типа «System.Collections.Generic.Dictionary'2 [System.String, System.Object]» не может быть преобразован в тип «System.Array». Но решение Раулинга прекрасно работает! Опять Тинкс! –