2014-02-19 5 views
0

Таким образом, им успешно пробегает по словарю данных в формате JSON, для всего, что имеет одно значения, как, например:пробегает по струнному словарю объектов

var jsonData = ((TextBox)e.Item.FindControl("txtMessage")).Text; 

var js = new JavaScriptSerializer(); 
var obj = js.Deserialize<dynamic>(jsonData); 

foreach (KeyValuePair<string,object> item in obj) 
{ 
    var key = item.Key; 
    var value = item.Value; 
    if (key == "PercentageMatch") 
    { 
     ((Label) e.Item.FindControl("lblMatchedPercent")).Text =  
     value.ToString(); 
    } 
} 

Я знаю, нужно добавить дополнительный код для чтения в значениях АКА, который я знаю больше, чем до значения, иногда 10.

Итак, мой код будет выглядеть что-то похожее на это:

var jsonData = ((TextBox)e.Item.FindControl("txtMessage")).Text; 

var js = new JavaScriptSerializer(); 
var obj = js.Deserialize<dynamic>(jsonData); 

foreach (KeyValuePair<string,object> item in obj) 
{ 
    var key = item.Key; 
    var value = item.Value; 
    if (key == "PercentageMatch") 
    { 
     ((Label) e.Item.FindControl("lblMatchedPercent")).Text = 
     value.ToString(); 
    } 
    if (key == "MatchedPerson") 
    { 
     foreach (KeyValuePair<string,object> aka in item) 
     { 

     } 
    } 
} 

, но это не представляется правильным.

enter image description here

+0

Не могли бы вы дать нам 'json' пример для вашего дела и точно сказать, в каком разделе вы пытаетесь доб ract или set? –

+0

Орел, данные устремлены, но я загрузил экранный захват того, что мне нужно достичь. – CSharpNewBee

ответ

1

Я предполагаю, что значение должно быть другим словарем, так что вы можете сделать что-то вроде:

foreach(var aka in (IEnumerable<KeyValuePair<string, object>>)value) 
{ 
} 

также отметить, что цикл по парам словаря и сопоставление по ключу является неэффективным , вы могли бы использовать вместо TryGetValue:

object person; 
if(obj.TryGetValue("MatchedPerson", out person)) 
{ 
    foreach(var aka in (IEnumerable<KeyValuePair<string, object>>)person); 
} 
Смежные вопросы