JSON-телеграмма без имени переменной - C#

Узнай цену своей работы

Формулировка задачи:

Доброго здоровья коллегам по цеху. Столкнулся с таким нюансом и никак не получается его победить: Формирую JSON-объект из двух классов, один встраивается в другой. В браузере получаю строку вида: {"BPC":{"new_value":"AUTOMAT","time":1496638794,"value":"AUTOMAT"},"iVanna":30,"sMS":"..MS"}. Красным цветом: старший класс, розовым цветом: младший. Вопрос, как сделать так, чтоб имена "BPC" (имя экземпляра младшего класса), "iVanna" и "sMS" не указывались, а были только значения? Прикладываю код:
public class IndexBPC
        {
            public int iVanna { get; set; }
            public string sMS { get; set; }
            public BathPollClass BPC { get; set; }
        }
 
        public class BathPollClass// данные опроса
        { 
            public string value = HttpClient.sPotMode;//текущее состояние 
            public long time = UnixTimeNow();//время формирования JSON-массива
            public string new_value = HttpClient.sNewValue;//состояние, которое должно быть отработано
 
        };
 
public static string FormatJsonResp(string _strPot, string sMS)//формирование json ответа
        {
            //Создаём объект ответа  
            IndexBPC jsonResp = new IndexBPC()
            {
                iVanna = HttpClient.iPot,
                sMS = "..MS",
                BPC = new BathPollClass()
            };
 
            MemoryStream memStream = new MemoryStream();//Создаю поток для сериализации объекта  
            DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(IndexBPC));// Сериализую объект для  потока
Результат:

{"BPC":{"new_value":"AUTOMAT","time":1496643275,"value":"AUTOMAT"},"iVanna":30,"sMS":"..MS"}

Требуется получить JSON такого формата:

{"30":{"..MS":{"new_value":"AUTOMAT","time":1496643275,"value":"AUTOMAT"}}}

PS. Пока писал - увидел, что нужно вывести "iVanna" в ещё более старший класс, тем не менее - как убрать имена переменных? Благодарю за внимание!

Решение задачи: «JSON-телеграмма без имени переменной»

textual
Листинг программы
DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(IndexBPC));
jsonFormatter.WriteObject(memStream, jsonResp);
 
HttpClient.JsonArr = memStream.ToArray();//из потока помещаю в массив байт
 
response.ContentLength64 = HttpClient.JsonArr.Length;// получаем поток ответа
Stream output = response.OutputStream;// пишем в него ответ
output.Write(HttpClient.JsonArr, 0, HttpClient.JsonArr.Length);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5