Отправлять данные массивами через JSON (C#)

Отправляю данные в формате JSON следующего вида:

{
  "navData": {
    "id": 1,
    "teleTime": 1873495637,
    "lat": 61.08668916651204,
    "lon": 76.66008498907557,
    "valid": 1,
    "speed": 57,
    "direction": 134,
    "digitSensNum": 0,
    "deviceRun": 0.0,
    "idMO": 0
    "idAt": 1435563,
    "atCode": "1435563",
    "subscriptionId": 1
  },
  "analogData": null,
}

Необходимо отправлять данные немного иного вида:

{
  "navData": [
{
    "id": 1,
    "teleTime": 1873495637,
    "lat": 61.08668916651204,
    "lon": 76.66008498907557,
    "valid": 1,
    "speed": 57,
    "direction": 134,
    "digitSensNum": 0,
    "deviceRun": 0.0,
    "idMO": 0
    "idAt": 1435563,
    "atCode": "1435563",
    "subscriptionId": 1
}
],
  "analogData": [],
}

Как мне следует переделать код класса и сериализации, чтобы получить на выходе JSON нужного вида?
Сериализация:

DataToSend.Root sendData = new DataToSend.Root
{
    navData = new DataToSend.NavData
    {
        id = 1,
        teleTime = ((DateTimeOffset)navTime.ToUniversalTime()).ToUnixTimeSeconds(),
        lat = Data.latitude,
        lon = Data.longitude,
        valid = 1,
        speed = Data.speed,
        direction = Data.course,
        digitSensNum = 1,
        deviceRun = 0,
        idMO = 1,
        idAt = Data.AtNumber,
        atCode = Data.client.ToString(),
        subscriptionId = 1
    }
};

var sendDataJson = JsonConvert.SerializeObject(sendData, Formatting.Indented);

Класс:

internal class DataToSend
{
    public class Root
    {
        public NavData navData { get; set; }
        public AnalogData analogData { get; set; }
    }

    public class NavData
    {

        public long idAt { get; set; }
        public string atCode { get; set; }
        public long teleTime { get; set; }
        public double lat { get; set; }
        public double lon { get; set; }
        public int speed { get; set; }
        public int direction { get; set; }
        public long id { get; set; }
        public int valid { get; set; }
        public long digitSensNum { get; set; }
        public double deviceRun { get; set; }
        public int idMO { get; set; }
        public int subscriptionId { get; set; }
    }
}

Ответы (1 шт):

Автор решения: Anatol

Следует изменить сериализуемый класс следующим образом:

internal class DataToSend
{
    public class Root
    {
        public IEnumerable<NavData> navData { get; set; }
        public IEnumerable<AnalogData> analogData { get; set; }
    }
    ...

И да, как сказали в комментариях - изучите спецификацию JSON, это фундаментальное знание.


Полезныe сервисы по теме:

  1. С# --> JSON
  2. JSON --> C#
→ Ссылка