<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=LoadJSONFromString</id>
	<title>LoadJSONFromString - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=LoadJSONFromString"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=LoadJSONFromString&amp;action=history"/>
	<updated>2026-04-04T12:46:07Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4429&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4429&amp;oldid=prev"/>
		<updated>2022-09-07T12:20:49Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:20, 7 September 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4428&amp;oldid=prev</id>
		<title>1&gt;Admin at 10:29, 16 August 2022</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4428&amp;oldid=prev"/>
		<updated>2022-08-16T10:29:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 10:29, 16 August 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot; &gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Булевский тип (''true'' или ''false'') будет загружен как текст &amp;quot;true&amp;quot; или &amp;quot;false&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 2, для того, чтобы этот объект можно было отличить от строки (если в этом есть необходимость).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Булевский тип (''true'' или ''false'') будет загружен как текст &amp;quot;true&amp;quot; или &amp;quot;false&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 2, для того, чтобы этот объект можно было отличить от строки (если в этом есть необходимость).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Пустой тип (''null'') будет загружен как текст &amp;quot;null&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 3, для того, чтобы этот объект можно было отличить от строки.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Пустой тип (''null'') будет загружен как текст &amp;quot;null&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 3, для того, чтобы этот объект можно было отличить от строки.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Элементы массивов значений ('''[1,2,3]''') будут добавлены как обычные объекты без имени.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Синтаксис ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Синтаксис ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4368&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4368&amp;oldid=prev"/>
		<updated>2022-07-17T11:22:20Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 11:22, 17 July 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4367&amp;oldid=prev</id>
		<title>1&gt;Admin at 06:50, 17 July 2022</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=LoadJSONFromString&amp;diff=4367&amp;oldid=prev"/>
		<updated>2022-07-17T06:50:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=LoadJSONFromString&lt;br /&gt;
|caption=Функции работы со строками&lt;br /&gt;
|type=1&lt;br /&gt;
|status=1&lt;br /&gt;
|db=0&lt;br /&gt;
|exception=Невозможно превратить в строку, число&lt;br /&gt;
|visual=0}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Строковые функции]]}}&lt;br /&gt;
Функция загружает часть текста или весь текст в формате JSON и возвращает его представление в виде объекта дерева или списка. Функция загружает текст JSON от начала строки до того, как системе встречается знак закрытия массива, идущий вне исходного уровня или какой-либо ошибочный знак. От начала строки текста, при этом, будет удалена загруженная подстрока. Таким образом, можно загружать очень большой текст, содержащий заранее известные элементы массива постепенно. Корректный текст JSON будет загружен полностью.&lt;br /&gt;
&lt;br /&gt;
Комментарии по работе функции:&lt;br /&gt;
* В создаваемых объектах функция также использует поле ''Check'' (как в дереве, так и в списках). Если это поле установлено, элемент включает массив ('''[...]'''), иначе включает объект ('''{...}'''). Такой подход необходим для корректной работы функции [[SaveJSONToString]], так как без него система не отличить пустой объект ''{}'' от пустого массива ''[]''.&lt;br /&gt;
* Булевский тип (''true'' или ''false'') будет загружен как текст &amp;quot;true&amp;quot; или &amp;quot;false&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 2, для того, чтобы этот объект можно было отличить от строки (если в этом есть необходимость).&lt;br /&gt;
* Пустой тип (''null'') будет загружен как текст &amp;quot;null&amp;quot;. Поле ''Check'' этой ветки или элемента изменяется на 3, для того, чтобы этот объект можно было отличить от строки.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
'''LoadJSONFromString'''({{ByRef|&amp;lt;Строка (STRING)&amp;gt;}}{{Optional|,''&amp;lt;Тип возвращаемого объекта (INT)&amp;gt;''{{Default|{{Eq}}0}}}}):''&amp;lt;Результат (TREE,LIST)&amp;gt;''&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Строка (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - {{ByRef}} Аргумент содержит строку в формате JSON. Если будет загружена только часть строки, в переменной аргумента будет возвращена незагруженная часть. Если строка загружается полностью (корректный объект JSON), в переменной аргумента будет возвращена пустая строка.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Тип возвращаемого объекта (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Аргумент задает тип возвращаемого функцией объекта, и может принимать следующие значения:&lt;br /&gt;
** '''0''' (по умолчанию): Функция возвратит объект дерева.&lt;br /&gt;
** '''1''': Функция возвратит объект списка, который будет содержать другие списки, представляющие массивы исходного объекта JSON.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Будет возвращен либо объект дерева, либо объект списка, в зависимости от значения второго аргумента.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Загрузка простого объекта JSON&lt;br /&gt;
Стр:=FileToString(&amp;quot;C:\Temp\Object.json&amp;quot;,65001);&lt;br /&gt;
aTree:=LoadJSONFromString(Стр,0);&lt;br /&gt;
aBr:=aTree[&amp;quot;Результат&amp;quot;,&amp;quot;Вложения&amp;quot;];&lt;br /&gt;
Message(&amp;quot;Файлы ветки Вложения:&amp;quot;);&lt;br /&gt;
If _And(TypeStr(aBr)=&amp;quot;TREE.BRANCH&amp;quot;,aBr.Size()&amp;gt;0) Then&lt;br /&gt;
  For i:=1 to aBr.Size() Do&lt;br /&gt;
    Message(&amp;quot;Файл вложения: &amp;quot;+aBr[i,&amp;quot;Файл&amp;quot;,&amp;quot;Имя&amp;quot;]);&lt;br /&gt;
  EndDo;&lt;br /&gt;
EndIf;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Загрузка JSON по этапам&lt;br /&gt;
Стр:=&amp;quot;{&amp;quot;&amp;quot;Вложения&amp;quot;&amp;quot;:[{&amp;quot;&amp;quot;Файл&amp;quot;&amp;quot;:{&amp;quot;&amp;quot;Имя&amp;quot;&amp;quot;:&amp;quot;&amp;quot;Файл1&amp;quot;&amp;quot;,&amp;quot;&amp;quot;Тип&amp;quot;&amp;quot;:0},&amp;quot;&amp;quot;Удален&amp;quot;&amp;quot;:0},{&amp;quot;&amp;quot;Файл&amp;quot;&amp;quot;:{&amp;quot;&amp;quot;Имя&amp;quot;&amp;quot;:&amp;quot;&amp;quot;Файл2&amp;quot;&amp;quot;,&amp;quot;&amp;quot;Тип&amp;quot;&amp;quot;:1},&amp;quot;&amp;quot;Удален&amp;quot;&amp;quot;:1},{&amp;quot;&amp;quot;Файл&amp;quot;&amp;quot;:{&amp;quot;&amp;quot;Имя&amp;quot;&amp;quot;:&amp;quot;&amp;quot;Файл3&amp;quot;&amp;quot;,&amp;quot;&amp;quot;Тип&amp;quot;&amp;quot;:2},&amp;quot;&amp;quot;Удален&amp;quot;&amp;quot;:0}]}&amp;quot;;&lt;br /&gt;
TearStr(Стр,&amp;quot;{&amp;quot;&amp;quot;Вложения&amp;quot;&amp;quot;:[&amp;quot;);&lt;br /&gt;
While Стр&amp;lt;&amp;gt;&amp;quot;&amp;quot; Do&lt;br /&gt;
  aTree:=LoadJSONFromString(Стр,0);&lt;br /&gt;
  //Загрузка остановится на знаке &amp;quot;,&amp;quot;&lt;br /&gt;
  TearStr(Стр,&amp;quot;,&amp;quot;);&lt;br /&gt;
  If aTree.Size()&amp;gt;0 Then&lt;br /&gt;
    Message(&amp;quot;Файл: &amp;quot;+aTree[&amp;quot;Файл&amp;quot;,&amp;quot;Имя&amp;quot;]);&lt;br /&gt;
  EndIf;&lt;br /&gt;
EndDo;&lt;br /&gt;
//Будет выведено: &lt;br /&gt;
//Файл: Файл1&lt;br /&gt;
//Файл: Файл2&lt;br /&gt;
//Файл: Файл3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>