2017-01-21 3 views
0

Ich bin neu in C# und haben diese json string:
Wie kann ich JSON in C# mit Newtonjson analysieren?

"{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}" 


versuchen, diese Zeichenfolge mit diesem Code analysieren:

dynamic dynObj = JsonConvert.DeserializeObject(html); 


aber ich Zugang wollen zum Beispiel Array Index Null oder Array Index eins, wie kann ich Code für diesen Zweck schreiben? Danke.

Antwort

2

Verwenden Sie nicht dynamic, es sei denn, es gibt keine andere Option, um Ihr Problem zu lösen. Hier ist, wie Sie einen Typ erstellen können Ihre Daten zur Karte:

private struct DataHolder 
{ 
    public decimal result { set; get; } 
    public Package[] Packages { set; get; } 
    public bool IsArbitrary { set; get; } 
} 

private struct Package 
{ 
    public decimal Count { set; get; } 
    public decimal Price { set; get; } 
} 

static void Main(string[] args) 
{ 
    string html = "{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}"; 

    DataHolder data = JsonConvert.DeserializeObject<DataHolder>(html); 

    foreach(var package in data.Packages) 
    { 
     // do something with package.Count or package.Price 
    } 
} 

Dann haben Sie ein statisches Objekt, in dem Sie Packages und Schleife über sie zugreifen können.

+0

danke, das stimmt, nun, wie kann ich den benutzer mit for loop diese daten zeigen? –

+0

@behzadrazzaqi Überprüfen Sie die aktualisierte Antwort. – user3185569

+0

danke für die Hilfe –

Verwandte Themen