locked
JSON: Array или Object RRS feed

  • Вопрос

  • У меня есть WEB API, которое возвращает мне информацию о постах

    Если пост имеет логотип:

    "thumbnail_images":{"small":{"url":"http:....png","width":211,"height":150},"medium":...

    Но если его нет, то так:

    "thumbnail_images":[]

    Я создаю 

    public ThumbnailImages thumbnail_images { get; set; }

    Но когда картинок нет, я должен создавать 

    public List<ThumbnailImages> thumbnail_images { get; set; }

    Как мне это сделать? API сам исправить не могу..



    • Изменено mr. nobody 30 мая 2014 г. 20:58
    30 мая 2014 г. 20:55

Ответы

  • Решил сделать просто
    Replace("\"thumbnail_images\":[]", "\"thumbnail_images\":{\"small\":{\"url\":\"null\"}}");

    • Помечено в качестве ответа mr. nobody 31 мая 2014 г. 14:05
    31 мая 2014 г. 14:05

Все ответы

  • Например с использованием json.net:

    var client = new HttpClient();
    var jsonString = await client.GetStringAsync(url);
    ThumbnailImages result;
    if (jsonString != ""thumbnail_images":[]")
    {
        result = JsonConvert.Deserialize<ThumbnailImages>(jsonString);
    }

    Думаю что кавычки подправите. 

    Если сервер вернул "thumbnail_images":[]" объект равен null и не нужно два свойства разных типов


    • Изменено V.A.Zolotov 30 мая 2014 г. 21:28
    30 мая 2014 г. 21:27
  • А если мне не один пост приходит, а много?
    30 мая 2014 г. 21:47
  • А если мне не один пост приходит, а много?

    если вы про массив объектов то десериализуете так:

     result = JsonConvert.Deserialize<List<ThumbnailImages>>(jsonString);
    если не про это, то уточните
    30 мая 2014 г. 22:26
  • "posts": [ { "id":1, "type":"post", "thumbnail_images":[] }, { "id":2, "type":"post", "thumbnail_images": { "small": { "url":"http:...png", } } } ]

    Как в таком случае?

    31 мая 2014 г. 7:58
  • Решил сделать просто
    Replace("\"thumbnail_images\":[]", "\"thumbnail_images\":{\"small\":{\"url\":\"null\"}}");

    • Помечено в качестве ответа mr. nobody 31 мая 2014 г. 14:05
    31 мая 2014 г. 14:05