2017-01-31 35 views
2

如何訪問JsonSerializer對象的值?C# - 訪問JsonSerializer對象的值

我當前的代碼:

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

我怎麼能訪問存儲在CLIENT_ID價值?我一直在嘗試以下,這沒有奏效:

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

'parsedData [ 「的client_id」]的ToString()' –

+0

錯誤:標識符預期 – d45ndx

+0

嘗試沒有額外的'.' - 所以'parsedData [ 「的client_id」]' –

回答

2

最地道和有效的方法是使用Deserialize<T>反序列化成衆所周知的類型具有適當client_id屬性:

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

所以我應該創建一個包含get/set的類並從那裏獲取值? – d45ndx

+0

是的。我建議使用Visual Studio的「Paste Special」來自動從JSON創建一個類。 – dcrobbins

1

試試這個..

string parsedData = JsonConvert.SerializeObject(yourObject);

MessageBox.Show(parsedData);

1

使用「動態」而不是「對象」數據類型。然後,你可以訪問如下

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