2016-10-14 1 views
0

В настоящее время я пытаюсь извлечь данные из своей веб-службы. Мне удалось получить успешный ответ от веб-службы с помощью HTTPClient. Однако я не могу извлечь конкретные значения. Например, мой JSON документ гласилИзвлечение данных из response.Content.ReadStringASync

{"d":[{"__type":"Info:#website.Model","infoClosingHours":"06:00:00 PM","infoID":1,"infoOpeningDays":"Monday","infoOpeningHours":"09:00:00 AM","infoStatus":"Open"}]}

Я хочу, чтобы получить infoOpeningDays, однако, я не могу это сделать.

Я попытался с помощью

dynamicObject.GetType().GetProperty("infoOpeningDays").GetValue(dynamicObject, null); 

dynamicObject["infoOpeningDays"]; 

Но он продолжал давать мне пустым.

Вот мой код

private async void GetData(object sender, EventArgs e) 
     { 
      HttpClient client = new HttpClient(); 
      client.BaseAddress = new Uri("ip"); 

      // Add an Accept header for JSON format. 
      client.DefaultRequestHeaders.Accept.Add(
      new MediaTypeWithQualityHeaderValue("application/json")); 

      try{ 
       HttpResponseMessage response = client.GetAsync("WebServices/information.svc/GetInformationJSON").Result; 
       if (response.IsSuccessStatusCode) 
       { 
        string jsonString = await response.Content.ReadAsStringAsync(); 
        dynamic dynamicObject = JsonConvert.DeserializeObject(jsonString); 
        //string abc = dynamicObject.IEnumerator.[0].IEnumerator.[0].IEnumerator.[0].IEnumerator.[5].Name; 
        string abc = dynamicObject.GetType().GetProperty("infoOpeningDays").GetValue(dynamicObject, null); 
       } 
      } 
      catch 
      { 

      } 

     } 

ответ

0

Вы должны получить доступ к свойствам непосредственно из динамического объекта, как это:

dynamic dynamicObject = JsonConvert.DeserializeObject(json); 
string infoClosingHours = dynamicObject.d[0].infoClosingHours; 

Или это тот же

string infoClosingHours = dynamicObject.d[0]["infoClosingHours"]; 
Смежные вопросы