2013-06-27 3 views
0

Так что я просто есть простой веб-интерфейс API, который возвращает формат JSON следующимСоздание класса модели в C#?

{ 
"dailyDealId": "432", 
"discountPercentage": "0", 
"product": { 
    "productId": "10", 
    "brandId": "10", 
    "departmentId": "3", 
    "name": "Baby Girl Velour Tunic & Snowflake Legging Set", 
    "description": "The pretty set", 
    "url": "http://whatever.whatever.com/files/whatever.tif" 
} 

}

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

это моя модель класса данных. CS

class Data 
{ 
    public string dailyDealId { get; set; } 
    public string discountPercentage { get; set; } 
    public Array product { get; set; } 
} 

и это мой основной код

static void Main(string[] args) 
    { 

     HttpClient client = new HttpClient(); 
     client.BaseAddress = new Uri("http://whatever.com/"); 

     HttpResponseMessage response = client.GetAsync("product/").Result; 

     if (response.IsSuccessStatusCode) 
     { 
      var products = response.Content.ReadAsAsync<IEnumerable<Data>>().Result; 

      foreach (var p in products) 
      { 

       Console.WriteLine("dailyDealId" + p.dailyDealId); 
      } 


     } 

    } 

Но оно не похоже на работу, и я получаю Newtonsoft.Json.JsonSerializationException: Не может десериализацию текущей ошибки JSON, любая помощь будет оценена

Благодаря

+0

Каково содержание ответа? Не работает ли 'http: // whatever.com/product /' ничего, кроме json, или у вас неправильный URL? – McAden

+0

Правильный URL-адрес, поэтому, когда я вызываю URL-адрес с помощью POSTMAN или Soap ui, он возвращает данные JSON, которые я там размещаю – user1429595

+1

Вы вызываете «асинхронный» метод и ожидаете его блокировки во время возвращения. –

ответ

5

Одна проблемы может быть в том, что ваш класс Data относятся к члену product как Array, когда JSON, который вы нам даете в качестве примера, является объектом (заключенным в {} не в []).

Вам нужно создать новый класс и изменить тип Data.product:

public class Product 
{ 
    public string productId { get; set; } 
    public string brandId { get; set; } 
    public string departmentId { get; set; } 
    public string name { get; set; } 
    public string description { get; set; } 
    public string url { get; set; } 
} 

public class Data 
{ 
    public string dailyDealId { get; set; } 
    public string discountPercentage { get; set; } 
    public Product product { get; set; } 
} 

JsonConvert должны работать с этим определением.

+0

как бы вы изменили тип данных? – user1429595

+0

Я буквально дал вам тип ответа. –

+0

Получил, спасибо! – user1429595

Смежные вопросы