Перейти к содержанию
Fire Monkey от А до Я
  • 0

Маршалинг массива, в котором данные разных типов


rareMax

Вопрос

Я работаю с библиотекой XSuperObject. Как правило, сам JSON я не парсю, а только создаю классы-прототипы данных в JSON, и пользуюсь методами .FromJSON и .ToJSON.

пример:

Для такого JSON'a 

Цитата

{
    "response" : {
        "text" : "SP4K – Million (Feat. Thomas Mraz)",
        "audio" : {
            "id" : 456239199,
            "owner_id" : 2000261195,
            "artist" : "SP4K",
            "title" : "Million (Feat. Thomas Mraz)",
            "duration" : 208,
            "date" : 1464166093,
            "url" : "http:\/\/cs613628.vk.me\/u1768845\/audios\/f266e0328a98.mp3",
            "album_id" : 2,
            "genre_id" : 18
        }
    }
}
 

создаю такой класс:

TvktStatus = Class
  private
    Ftext: String;
    FAudio: TvktAudio;
  published
    [Alias('text')]
    property text: String read Ftext write Ftext;
    [Alias('audio')]
    property audio: TvktAudio read FAudio write FAudio;
  End;

в итоге не нужно парсить программисту - все делает библиотечка. 

Теперь к самой проблеме.

Допустим есть такой файлик с данными в формате JSON:

Цитата

{
    "response" : 
                [
                    [1, "а"], 
                    [2, "б"], 
                    [3, "в"], 
                    [4, "г"], 
                    [5, "д"],  
                    [102, 15]
                ]
}

Как бы вы составили такой класс-прототип? Ведь тут получается в одном массиве есть как число так и строка.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
2 минуты назад, krapotkin сказал:

как вариант, можно предложить препроцессинг, заменяя 15 на "15"

Ну за это я думал - просто все равно в одном массиве будет сразу Integer, потом String ([5, "д"],). Можете подсказать как тут поступить лучше? 

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...