Получить значение из словаря в c#

#c# #dictionary

#c# #словарь

Вопрос:

Я пытаюсь получить street из словаря 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)
 

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

Комментарии:

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

Ответ №1:

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

 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);
}