2017-01-31 13 views
2

Wie kann ich auf Werte eines JsonSerializer-Objekts zugreifen?C# - Zugriff auf Werte eines JsonSerializer-Objekts

Mein aktueller Code:

private void Form1_Load(object sender, EventArgs e) 
{ 
    StreamReader re = new StreamReader("youtube_client_secret.json"); 
    JsonTextReader reader = new JsonTextReader(re); 
    JsonSerializer se = new JsonSerializer(); 
    object parsedData = se.Deserialize(reader); 
} 

Wie könnte ich den Wert in client_id gespeichert sind, zugreifen? Ich habe folgendes versucht, was nicht geklappt hat:

MessageBox.Show(parsedData["client_id"]); 
+0

'parsedData [ "client_id"] ToString()' –

+0

Fehler: Bezeichner erwartet – d45ndx

+0

Versuch ohne die zusätzliche '.' - so' parsedData [ "client_id"] ' –

Antwort

2

Die idiomatischen und effiziente Art und Weise wäre Deserialize<T> zu verwenden in einem bekannten Typ deserialisiert, die eine entsprechende client_id Eigenschaft hat:

var customer = se.Deserialize<Customer>(reader); 
var id = customer.client_id; 
+0

Also sollte ich eine Klasse mit einem get/set erstellen und die Werte von dort bekommen? – d45ndx

+0

Ja. Ich würde empfehlen, Visual Studio "Paste Special" zu verwenden, um automatisch eine Klasse aus JSON zu erstellen. – dcrobbins

1

die Sie interessieren ..

string parsedData = JsonConvert.SerializeObject(yourObject);

MessageBox.Show(parsedData);

1

Verwenden Sie "dynamisch" anstelle von "Objekt" -Datentyp. Dann können Sie, dass Zugang wie unten

dynamic parsedData = se.Deserialize(reader); 
var id = parsedData.client_id;