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