Skip to content

Commit d5febef

Browse files
committed
Merge branch 'develop'
2 parents a65ec25 + be252df commit d5febef

3 files changed

Lines changed: 72 additions & 4 deletions

File tree

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# :JSON (oscript-json)
2+
3+
Данная библиотека предназначена для парсинга и сериализации JSON в среде 1Script.
4+
5+
> **ВНИМАНИЕ: Проект устарел!**
6+
> Библиотека была необходима, когда в 1С отсутствовали штатные средства работы с JSON. После появления системного API для обработки JSON в 1С 8.3.6 они появились и в 1Script.
7+
>
8+
> Начиная с версии 1С 8.3.6 и в современных версиях 1Script, рекомендуется использовать системные методы `ПрочитатьJSON` и `ЗаписатьJSON`.
9+
> Библиотека сохранена в репозитории, так как она включена как зависимость во многие другие пакеты `oscript-library`.
10+
11+
## История и авторство
12+
13+
Библиотека является портом модуля Александра Переверзева (a.v.pereverzev@gmail.com).
14+
Оригинальная публикация: [:JSON на Infostart](https://infostart.ru/1c/tools/119601/)
15+
16+
## Особенности
17+
18+
- Поддержка стандартного и альтернативного режимов JSON.
19+
- Работа с типами 1С: `Структура`, `Соответствие`, `Массив`, `ТаблицаЗначений`, `ДеревоЗначений`, `Дата`, `УникальныйИдентификатор` и др.
20+
- Поддержка комментариев в стиле `//` и `/* ... */` при чтении (нестандартное расширение).
21+
- Возможность автоматического приведения объектов к `Структуре` или `Соответствию`.
22+
- Маскирование кириллицы (опционально).
23+
24+
## Примеры использования
25+
26+
### Чтение JSON
27+
28+
```bsl
29+
#Использовать json
30+
31+
Парсер = Новый ПарсерJSON();
32+
ТекстJSON = "{""Имя"": ""Иван"", ""Возраст"": 30}";
33+
34+
// Простой парсинг (результат - Соответствие или Структура)
35+
Результат = Парсер.ПрочитатьJSON(ТекстJSON);
36+
37+
// Чтение с принудительным приведением к Структуре
38+
РезультатСтруктура = Парсер.ПрочитатьJSON(ТекстJSON, , , Истина);
39+
```
40+
41+
### Запись JSON
42+
43+
```bsl
44+
#Использовать json
45+
46+
Парсер = Новый ПарсерJSON();
47+
48+
Данные = Новый Структура();
49+
Данные.Вставить("firstName", "Иван");
50+
Данные.Вставить("phoneNumbers", Новый Массив());
51+
Данные.phoneNumbers.Добавить("812 123-1234");
52+
53+
ТекстJSON = Парсер.ЗаписатьJSON(Данные);
54+
```
55+
56+
## Лицензия
57+
58+
Библиотека распространяется под лицензией MIT (см. заголовок `src/json.os`).
59+

packagedef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
Описание.Имя("json")
3-
.Версия("1.1.1")
3+
.Версия("1.1.2")
44
.ВключитьФайл("src")
55
.ВключитьФайл("tests")
66
.ВключитьФайл("lib.config")

src/json.os

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -789,14 +789,23 @@
789789
//
790790

791791
Функция НовоеОписаниеТипов(Знач Типы)
792-
Возврат Типы;
792+
МассивТипов = СтрРазделить(Типы, ",");
793+
Результат = Новый Массив;
794+
Для Каждого ИмяТипа Из МассивТипов Цикл
795+
Результат.Добавить(Тип(СокрЛП(ИмяТипа)));
796+
КонецЦикла;
797+
Возврат Результат;
793798
КонецФункции
794799

795800
Функция СодержитТип(Знач Описание, Знач Тип)
796801

797-
ПредставлениеТипа = Строка(Тип);
802+
Для Каждого Элемент Из Описание Цикл
803+
Если Элемент = Тип Тогда
804+
Возврат Истина;
805+
КонецЕсли;
806+
КонецЦикла;
798807

799-
Возврат Найти(Описание, ПредставлениеТипа) > 0;
808+
Возврат Ложь;
800809

801810
КонецФункции
802811

0 commit comments

Comments
 (0)