2016-10-14 2 views
-1

Я пытаюсь получить улицу из C# словарем, но он не работает (получать некоторую ошибку)Получение значения из словаря в C#

код

string data_scope_api = '[ 
    { 

    "retailerName": "vv", 
    "name": null, 
    "address": { 
     "fullShopName": "vv", 
     "street": "vv", 

    }, 

    }, 
    { 

    "retailerName": "vv", 
    "name": null, 
    "address": { 
     "fullShopName": "vv", 
     "street": "vv" 
    }, 

    } 
]' 






     dynamic results = JsonConvert.DeserializeObject<dynamic>(data_scope_api); 
     foreach (var result in results) { 

      string address = result.address; 
      Console.Write (address); 
      foreach (var address_1 in address) { 
       string store_street = address_1.street; 
       Console.Write (store_street); 
      } 
     } 

ошибка

Program.cs(37,37): Error CS1061: Type `char' does not contain a definition for `street' and no extension method `street' of type `char' could be found. Are you missing an assembly reference? (CS1061) (test) 

Как исправить и заставить эту программу работать?

+3

По крайней мере, правильно отформатируйте свой вопрос. И кстати, я не думаю, что 'address' является' string' в соответствии с вашим JSON. –

ответ

1

Вы получаете адрес в строковую переменную. Вместо этого используйте динамику.

foreach (var result in results) 
{ 
    dynamic address = result.address; // address is dynamic address json 
    Console.Write(address); 

    string store_street = address.street; // street is string data 
    Console.Write(store_street); 
} 
0

adress является dictionary<string,string> так

это:

string store_street = address_1.street; 

должно быть:

string store_street = address_1["street"] 
+0

получил эту ошибку Program.cs (36,36): Ошибка CS0021: Невозможно применить индексирование с [] к выражению типа 'char '(CS0021) (test) – Mounarajan