Я не уверен, как мне следует попытаться десериализовать некоторый JSON, который выглядит следующим образом:
{
"columns": [
{
"name": "stringColumn",
"type": "string"
},
{
"name": "DateColumn",
"type": "date"
},
{
"name": "NumberColumn",
"type": "number"
}
],
"data": [
[
"This is a string",
1548091093000,
123
]
]
}
Вектор columns
описывает типы и количество записей внутри элемента вектора data
. Пример выше может быть преобразован в CSV как таковой (игнорируя типы):
stringColumn,DateColumn,NumberColumn
"This is a string",1548091093000,123
Некоторые дополнительные задачи:
- A
number
может быть целым числом или числом с плавающей точкой. Должен ли я представлять его как перечисление?
- Большое число
1548091093000
- это число миллисекунд , начиная с эпохи UNIX (эквивалентно Monday, January 21, 2019 5:18:13 PM
). Поскольку у меня есть даты (используя эпоху) и числа, я не могу их легко отличить, не имея доступа к описанию «заголовка» ...
- Я использую
restson
для вызова REST API, который возвращает JSON выше. Restson вызовет serde_json::from_str()
с окончательным типом. Это означает, что этот тип должен реализовывать Deserialize
.
Как я могу десериализовать это?