Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. &НаСервере
  2. // Формирует JSON Строку из структуры
  3. //
  4. // Параметры:
  5. // Источник - Структура - Исходная структура, которая формирует JSON
  6. // СтрокаJSON - ЗаписьJSON - Новый объект записи для JSON
  7. //
  8. Процедура JSONИзСтруктуры(Источник, СтрокаJSON) Экспорт
  9.  
  10. //СтрокаJSON = Новый ЗаписьJSON();
  11. //ПараметрыJSON = Новый ПараметрыЗаписиJSON(,Символы.Таб);
  12. //СтрокаJSON.УстановитьСтроку(ПараметрыJSON);
  13. СтрокаJSON.ЗаписатьНачалоОбъекта();
  14. Для Каждого Элемент ИЗ Источник Цикл
  15.  
  16. Если ТипЗНЧ(Элемент.Значение) = Тип("Строка") Тогда
  17. СтрокаJSON.ЗаписатьИмяСвойства(Элемент.Ключ);
  18. СтрокаJSON.ЗаписатьЗначение(Элемент.Значение);
  19. ИначеЕсли ТипЗНЧ(Элемент.Значение) = Тип("Число") Тогда
  20. СтрокаJSON.ЗаписатьИмяСвойства(Элемент.Ключ);
  21. СтрокаJSON.ЗаписатьЗначение(Формат(Элемент.Значение, "ЧГ=0"));
  22. ИначеЕсли ТипЗНЧ(Элемент.Значение) = Тип("Булево") Тогда
  23. СтрокаJSON.ЗаписатьИмяСвойства(Элемент.Ключ);
  24. СтрокаJSON.ЗаписатьЗначение(Элемент.Значение);
  25. ИначеЕсли ТипЗНЧ(Элемент.Значение) = Тип("Массив") Тогда
  26. СтрокаJSON.ЗаписатьИмяСвойства(Элемент.Ключ);
  27. СтрокаJSON.ЗаписатьНачалоМассива();
  28. Для Каждого ЭлМассива Из Элемент.Значение Цикл
  29. Если ТипЗНЧ(ЭлМассива) = Тип("Строка") Тогда
  30. СтрокаJSON.ЗаписатьЗначение(ЭлМассива);
  31. ИначеЕсли ТипЗНЧ(ЭлМассива) = Тип("Число") Тогда
  32. СтрокаJSON.ЗаписатьЗначение(Формат(ЭлМассива, "ЧГ=0"));
  33. ИначеЕсли ТипЗНЧ(ЭлМассива) = Тип("Булево") Тогда
  34. СтрокаJSON.ЗаписатьЗначение(ЭлМассива);
  35. ИначеЕсли ТипЗНЧ(ЭлМассива) = Тип("Структура") Тогда
  36. JSONИзСтруктуры(ЭлМассива, СтрокаJSON);
  37. КонецЕсли;
  38. КонецЦикла;
  39. СтрокаJSON.ЗаписатьКонецМассива();
  40. ИначеЕсли ТипЗНЧ(Элемент.Значение) = Тип("Структура") Тогда
  41. СтрокаJSON.ЗаписатьИмяСвойства(Элемент.Ключ);
  42. JSONИзСтруктуры(Элемент.Значение, СтрокаJSON);
  43. Иначе Продолжить
  44. КонецЕсли;
  45.  
  46. КонецЦикла;
  47. СтрокаJSON.ЗаписатьКонецОбъекта();
  48. //Возврат
  49.  
  50. КонецПроцедуры // JSONИзСтруктуры()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement