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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д