2017-01-31 3 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 «Специальная вставка» для автоматического создания класса из JSON. – dcrobbins

1

Попробуйте это ..

string parsedData = JsonConvert.SerializeObject(yourObject);

MessageBox.Show(parsedData);

1

использовать «динамический» вместо данных «объект» Тип. Тогда вы можете получить доступ, что, как показано ниже

dynamic parsedData = se.Deserialize(reader); 
var id = parsedData.client_id; 
Смежные вопросы