/
EvilBeaver
/
OneScript
Обзор
Документация
Войти
/
EvilBeaver
/
OneScript
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/OneScript.StandardLibrary/Json/JSONWriterSettings.cs
213 строк
12 KB
EvilBeaver
Удален устаревший метод OnAttach и массово исправлены неиспользуемые using
02 дек 2025, 11:20
02 дек 2025, 11:20
0301fed
Код
Авторство
О чём код?
/*---------------------------------------------------------- This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. ----------------------------------------------------------*/ using OneScript.Contexts; using ScriptEngine.Machine.Contexts; namespace OneScript.StandardLibrary.Json { /// <summary> /// /// Определяет набор параметров, используемых при записи JSON. /// </summary> [ContextClass("ПараметрыЗаписиJSON", "JSONWriterSettings")] public class JSONWriterSettings : AutoContext<JSONWriterSettings> { private bool _useDoubleQuotes; private JSONLineBreakEnum _newLines; private string _paddingSymbols; private JSONCharactersEscapeModeEnum _escapeCharacters; private bool _escapeAmpersand; private bool _escapeSingleQuotes; private bool _escapeLineTerminators; private bool _escapeSlash; private bool _escapeAngleBrackets; public JSONWriterSettings(JSONLineBreakEnum NewLines = JSONLineBreakEnum.Auto, string PaddingSymbols = null, bool UseDoubleQuotes = true, JSONCharactersEscapeModeEnum EscapeCharacters = JSONCharactersEscapeModeEnum.None, bool EscapeAngleBrackets = false, bool EscapeLineTerminators = true, bool EscapeAmpersand = false, bool EscapeSingleQuotes = false, bool EscapeSlash = false) { _newLines = NewLines; _paddingSymbols = PaddingSymbols; _useDoubleQuotes = UseDoubleQuotes; _escapeCharacters = EscapeCharacters; _escapeAngleBrackets = EscapeAngleBrackets; _escapeLineTerminators = EscapeLineTerminators; _escapeAmpersand = EscapeAmpersand; _escapeSingleQuotes = EscapeSingleQuotes; _escapeSlash = EscapeSlash; } /// <summary> /// /// Создает объект параметров записи JSON. /// </summary> /// /// <param name="newLines"> /// Определяет способ переноса строк, который будет использован при записи данных JSON. /// Значение по умолчанию: Авто. </param> /// <param name="paddingSymbols"> /// Определяет символы отступа, используемые при записи данных JSON. /// Применяется только, если значение ПереносСтрокJSON отлично от Нет. /// Значение по умолчанию: " ". </param> /// <param name="useDoubleQuotes"> /// Определяет, будут ли при записи имена свойств JSON записываться в двойных кавычках. /// Значение по умолчанию: Истина. </param> /// <param name="escapeCharacters"> /// Определяет используемый способ экранирования (замены) символов при записи данных JSON. /// Значение по умолчанию: Нет. </param> /// <param name="escapeAngleBrackets"> /// Определяет, будут ли при записи экранироваться символы '<' и '>'. /// Значение по умолчанию: Ложь. </param> /// <param name="escapeLineTerminators"> /// Определяет, будут ли экранироваться разделители строк - U+2028 (line-separator) и U+2029 (page-separator). /// Значение по умолчанию: Истина. </param> /// <param name="escapeAmpersand"> /// Определяет, будет ли при записи экранироваться символ амперсанда '&'. /// Значение по умолчанию: Ложь. </param> /// <param name="escapeSingleQuotes"> /// Определяет, будут ли экранироваться одинарные кавычки. /// Устанавливается в значение Истина, если ИспользоватьДвойныеКавычки установлено в Ложь. /// Значение по умолчанию: Ложь. </param> /// <param name="escapeSlash"> /// Определяет, будет ли экранироваться слеш (косая черта) при записи значения. /// Значение по умолчанию: Ложь. </param> [ScriptConstructor(Name = "По описанию параметров записи")] public static JSONWriterSettings ParametrizedConstructor( JSONLineBreakEnum newLines = JSONLineBreakEnum.None, string paddingSymbols = null, bool useDoubleQuotes = true, JSONCharactersEscapeModeEnum escapeCharacters = JSONCharactersEscapeModeEnum.None, bool escapeAngleBrackets = false, bool escapeLineTerminators = true, bool escapeAmpersand = false, bool escapeSingleQuotes = false, bool escapeSlash = false) { return new JSONWriterSettings(newLines, paddingSymbols, useDoubleQuotes, escapeCharacters, escapeAngleBrackets, escapeLineTerminators, escapeAmpersand, escapeSingleQuotes, escapeSlash); } /// <summary> /// /// /// </summary> /// [ScriptConstructor] public static JSONWriterSettings Constructor() { return new JSONWriterSettings(); } /// <summary> /// /// Определяет использование двойных кавычек при записи свойств и значений JSON. /// После создания объекта данное свойство имеет значение Истина. /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ИспользоватьДвойныеКавычки", "UseDoubleQuotes")] public bool UseDoubleQuotes => _useDoubleQuotes; /// <summary> /// /// Управляет размещением начала и конца объектов и массивов, ключей и значений на новой строке. /// Также установка данного свойства в значение, отличное от Нет, добавляет пробел между именем свойства, двоеточием и значением. /// После создания объекта данное свойство имеет значение Авто. /// </summary> /// <value>ПереносСтрокJSON (JSONLineBreak)</value> [ContextProperty("ПереносСтрок", "NewLines")] public JSONLineBreakEnum NewLines => _newLines; /// <summary> /// /// Определяет символы отступа, используемые при записи документа JSON. /// Свойство не используется, если свойство ПереносСтрокJSON установлено в значение Нет. /// После создания объекта данное свойство имеет значение - один пробельный символ. /// </summary> /// <value>Строка (String)</value> [ContextProperty("СимволыОтступа", "PaddingSymbols")] public string PaddingSymbols => _paddingSymbols; /// <summary> /// /// Определяет способ экранирования символов при записи документа JSON. /// После создания объекта данное свойство имеет значение СимволыВнеASCII. /// </summary> /// <value>ЭкранированиеСимволовJSON (JSONCharactersEscapeMode)</value> [ContextProperty("ЭкранированиеСимволов", "EscapeCharacters")] public JSONCharactersEscapeModeEnum EscapeCharacters => _escapeCharacters; /// <summary> /// /// Определяет, будет ли экранироваться знак амперсанда при записи документа JSON. /// После создания объекта данное свойство имеет значение Ложь. /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ЭкранироватьАмперсанд", "EscapeAmpersand")] public bool EscapeAmpersand => _escapeAmpersand; /// <summary> /// /// Определяет, будет ли экранирован знак одинарной кавычки при записи документа JSON. /// Имеет значение Истина, если ИспользоватьДвойныеКавычки установлен Ложь. /// После создания объекта данное свойство имеет значение Ложь /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ЭкранироватьОдинарныеКавычки", "EscapeSingleQuotes")] public bool EscapeSingleQuotes => _escapeSingleQuotes; /// <summary> /// /// Определяет экранирование символов "U+2028" (разделитель строк) и "U+2029" (разделитель абзацев) для совместимости с JavaScript. /// После создания объекта данное свойство имеет значение Истина. /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ЭкранироватьРазделителиСтрок", "EscapeLineTerminators")] public bool EscapeLineTerminators => _escapeLineTerminators; /// <summary> /// /// Определяет, будет ли экранироваться слеш (косая черта) при записи значения. /// После создания объекта данное свойство имеет значение Ложь. /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ЭкранироватьСлеш", "EscapeSlash")] public bool EscapeSlash => _escapeSlash; /// <summary> /// /// Определяет, будут ли экранированы знаки угловых скобок при записи документа JSON. /// После создания объекта данное свойство имеет значение Ложь. /// </summary> /// <value>Булево (Boolean)</value> [ContextProperty("ЭкранироватьУгловыеСкобки", "EscapeAngleBrackets")] public bool EscapeAngleBrackets => _escapeAngleBrackets; } }