SHARE
TWEET

Untitled

a guest Aug 20th, 2019 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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ИзСтруктуры()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top