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

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

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

Доброго здоровья коллегам по цеху. Столкнулся с таким нюансом и никак не получается его победить: Формирую JSON-объект из двух классов, один встраивается в другой. В браузере получаю строку вида: {"BPC":{"new_value":"AUTOMAT","time":1496638794,"value":"AUTOMAT"},"iVanna":30,"sMS":"..MS"}. Красным цветом: старший класс, розовым цветом: младший. Вопрос, как сделать так, чтоб имена "BPC" (имя экземпляра младшего класса), "iVanna" и "sMS" не указывались, а были только значения? Прикладываю код:
Листинг программы
  1. public class IndexBPC
  2. {
  3. public int iVanna { get; set; }
  4. public string sMS { get; set; }
  5. public BathPollClass BPC { get; set; }
  6. }
  7. public class BathPollClass// данные опроса
  8. {
  9. public string value = HttpClient.sPotMode;//текущее состояние
  10. public long time = UnixTimeNow();//время формирования JSON-массива
  11. public string new_value = HttpClient.sNewValue;//состояние, которое должно быть отработано
  12. };
  13. public static string FormatJsonResp(string _strPot, string sMS)//формирование json ответа
  14. {
  15. //Создаём объект ответа
  16. IndexBPC jsonResp = new IndexBPC()
  17. {
  18. iVanna = HttpClient.iPot,
  19. sMS = "..MS",
  20. BPC = new BathPollClass()
  21. };
  22. MemoryStream memStream = new MemoryStream();//Создаю поток для сериализации объекта
  23. 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
Листинг программы
  1. DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(IndexBPC));
  2. jsonFormatter.WriteObject(memStream, jsonResp);
  3.  
  4. HttpClient.JsonArr = memStream.ToArray();//из потока помещаю в массив байт
  5.  
  6. response.ContentLength64 = HttpClient.JsonArr.Length;// получаем поток ответа
  7. Stream output = response.OutputStream;// пишем в него ответ
  8. output.Write(HttpClient.JsonArr, 0, HttpClient.JsonArr.Length);

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут