Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Метод ПрочитатьJSON добавляет в возвращаемых данных (в массиве) закоментированные строки #1373

Closed
240596448 opened this issue Oct 27, 2023 · 3 comments

Comments

@240596448
Copy link
Contributor

240596448 commented Oct 27, 2023

Если в массиве json есть закомментированная строка, то она попадает в структуру данных в виде элемента массива.

Пример воспроизведения прикреплен
image

Проверил на 1.1.1, 1.4.0, 1.8.4

testjson.zip

Листинги

[
    {
        "NAME": "",
        "Method": "",
        "PATH": ""
    },
    {
        "NAME": "",
        // "Method": "",
        "PATH": ""
    }
    // },
    // {
    //     "NAME"   : ""
    //     "Method" : "",
    //     "PATH"   : ""
]
ЧтениеТекста = Новый ЧтениеТекста("test.json", КодировкаТекста.UTF8NoBOM);
Текст = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();

ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(Текст);
Настройка = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Для Каждого Стр Из Настройка Цикл
	Сообщить(Стр);
КонецЦикла;

Обсуждение https://t.me/oscript_library/98144

@Mr-Rm
Copy link
Collaborator

Mr-Rm commented Oct 27, 2023

Не только в массиве:

Текст = "
|{
|  'test': //fail
|  'pass'
|}";
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(Текст);
Результат = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Сообщить(Результат.test);

fail
вместо "pass"

@EvilBeaver
Copy link
Owner

Я не знаю, какое должно быть правильное поведение. Комментариев в синтаксисе Json вообще не предусмотрено....

@240596448
Copy link
Contributor Author

240596448 commented Oct 28, 2023

Комментариев в синтаксисе Json вообще не предусмотрено....

Вопрос дискуссионный. С одной стороны именно таким он и создавался, а с другой формат вырос до одно- и многострочных комментариев.

Я не знаю, какое должно быть правильное поведение.

В чем имеено логическая ловушка?
Нужны однострочные комментарии. В многострочные не лезть. Обработка комментариев построчная.

Mr-Rm added a commit to Mr-Rm/OneScript that referenced this issue Oct 30, 2023
Mr-Rm added a commit to Mr-Rm/OneScript that referenced this issue Oct 31, 2023
Mr-Rm added a commit to Mr-Rm/OneScript that referenced this issue Apr 17, 2024
Mr-Rm added a commit to Mr-Rm/OneScript that referenced this issue Apr 17, 2024
EvilBeaver added a commit that referenced this issue Apr 20, 2024
Значительные исправления ПрочитатьJSON (fix #1373 и прочее)
EvilBeaver added a commit that referenced this issue Jun 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants