2016-10-14 5 views
-1

Ich versuche, C# Wörterbuch zu bekommen Straße aus, aber es funktioniert nicht (einige Fehler bekommen)Get Wert von Dictionary in C#

Code

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

Fehler

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) 

Wie reparieren und dieses Programm arbeiten lassen?

+3

Zumindest formatieren Sie Ihre Frage richtig. Und übrigens, ich glaube nicht, dass 'address' eine' string' ist, die zu deinem JSON gehört. –

Antwort

1

Sie erhalten die Adresse in einen String-Variable. Verwenden Sie stattdessen 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); 
} 
0

adress ist ein dictionary<string,string> so

dieses:

string store_street = address_1.street; 

sein sollte:

string store_street = address_1["street"] 
+0

hat diesen Fehler Program.cs (36,36) erhalten: Fehler CS0021: kann Indexierung mit [] nicht auf einen Ausdruck des Typen "Char" anwenden (CS0021) (Test) – Mounarajan