2016-10-14 2 views
0

Я новичок в C#, но у меня есть большой опыт использования OOP, как PHP и Java. У меня есть HTTP-ответ в моем коде C#, который возвращает объект JSON, я читал много статей в Интернете, и я видел некоторые документы Microsoft относительно декодирования JSON и другого метода, однако раньше я использовал PHP, и я знаю, что есть очень простой способ сделать это следующим образом:Шаги декодирования JSON - C#

, учитывая, что $response является ответ от веб-сервиса:

$json_string = json_decode($response,true); 
$var = $json_string["test"]["country"]; 

я видел подобный вопрос на сайте, и у него был ответ:

dynamic response = JsonConvert.DeserializeObject(json); 

Console.WriteLine("PropName:" +  response.data[1].attachment.properties[0].name); 

foreach (var data in response.data) 
{ 
    if (data.attachment != null) 
    Console.WriteLine((string)data.attachment.name); 
} 

Как вы можете видеть здесь динамический объект был создан, чтобы получить объект сына (string)data.attachment.name, поэтому имя значения фиксировано, мне было интересно, если это значение может быть строкой, например, так:

String 1="attachement"; 
String 2="name"; 
(string)responsedata.1.2; 

Я знаю синтаксис неправильно и что 1 и 2 должны иметь тип динамический. Могут ли эти vapes быть строками, как в случае примера php, который я дал в начале моего вопроса.

Есть ли аналогичный и простой код в C#, который имеет одинаковый выход и прост в использовании? Цените свою помощь.

+1

Возможно, это вы ищете? http://stackoverflow.com/questions/6620165/how-can-i-parse-json-with-c – Maximus2012

ответ

0

Вы можете использовать newtonsoft для десриализации json-объекта.

string json = @"{ 
    'Country': 'US', 
    'State': IL, 
    'CreatedDate': '2016-10-14T00:00:00Z'  
}"; 

DefineYourObject obj = JsonConvert.DeserializeObject<DefineYourObject>(json);  
Console.WriteLine(obj.Country); 
Смежные вопросы