Добрый день, получаю очень большой каталог в формате JSON обрабатываю его как пример ОтветJSON.entry[0].resource.extension[0].valueReference.reference; каталог содержит ссылки на данные внутри себя по этим ссылкам организую поиск циклами при этом всё виснет, не совсем правильный для большого объёма этот вариант.
Может есть более рабочий вариант ?
---
Сделать соответствие в котором ключ - ссылка, а значение нужный объект этой ссылки.

```1c
    СоответствиеСсылок = Новый Соответствие;
    Для Индекс = 1 По ОтветJSON.entry.ВГраница() Цикл

    Ссылка = ОтветJSON.entry[Индекс].fullUrl;
    СоответствиеСсылок.Вставить(Ссылка , ОтветJSON.entry[Индекс]);
    КонецЦикла;
```

вот мне нужно обратить ся к

```1c
    ОтветJSON.entry[0].resource.section.title;
```

Для нужной ссылки - СоответствиеСсылок[НужнаяСсылка].resource.section.title
---
Что значит "поиск по ссылкам циклами"?
---
```1c
    Для Индекс = 1 По ОтветJSON.entry.ВГраница() Цикл

    Ссылка = ОтветJSON.entry[Индекс].fullUrl;

    Если Ссылка = СсылкаКоторуюИщем Тогда

    КонецЕсли;

    КонецЦикла;
```
---
1. Можно один раз пробежаться и сложить все ссылки в удобную коллекцию для последующего быстрого поиска (например в массив)
2. Можно использовать DOM-модель и встроенные механизмы поиска.
---
1. Тогда уж не массив, а соответствие или индексированную таблицу значений :)
---
Формат JSON это текст, у вас же объектное чтение. Только вот ВГраница() - это ж для фиксированного массива вроде работает. Наверное надо преобразовать это в ТЗ, возможно поле со ссылками проиндексировать
---
Что мне даст таблица значений как по ней поиск организовать ?
---
1. Определить поля, которые будут использоваться для поиска. 2. Крутить цикл уже по этой ТЗ, искать методом ТЗ.Найти(Значение,"ИмяКолонки") Все просто)
---
Может использовать XPath?
---
XPath - мы получаем коллекцию. Ко мне приходит структура которую я пытаюсь обойти циклами.
---
Но ведь коллекция содержит уже только нужные элементы. Исходя из (1) она будет содержать только элементы с СсылкаКоторуюИщем.
---
Я ему уже предлагал в (5). Не отреагировал. Ну, значит, не так уж и важно.
---
(14)Примерная структура JSON. Как она будет вы глядеть в коллекции ? Я просто этого не могу представить вот мне нужно найти в JSON по fullurl блок в нём обратиться к ОтветJSON.entry[0].resource.section.title; как бы это выгледело ?
---
Сделать соответствие в котором ключ - ссылка, а значение нужный объект этой ссылки.

```1c
    СоответствиеСсылок = Новый Соответствие;
    Для Индекс = 1 По ОтветJSON.entry.ВГраница() Цикл

    Ссылка = ОтветJSON.entry[Индекс].fullUrl;
    СоответствиеСсылок.Вставить(Ссылка , ОтветJSON.entry[Индекс]);
    КонецЦикла;
```

вот мне нужно обратить ся к

```1c
    ОтветJSON.entry[0].resource.section.title;
```

Для нужной ссылки - СоответствиеСсылок[НужнаяСсылка].resource.section.title
---
Спасибо.
---
Я применял XPath для поиска в XML. Мне возвращалась коллекция элементов соответствующих отбору. Можно ли применить XPath для поиска по JSON я не знаю. Но попробовать стоит.
В случае с XML можно получить коллекцию состоящую только из тех title, у которых fullurl, их прародителя resource, содержит СсылкаКоторуюИщем.
---
XPath работает с DOM объектом, а его создать можно только из XML, насколько я помню. Поправьте меня если я ошибаюсь.
---
Да, я уже посмотрел. Только XML и HTML.
---
Ой, а я написал только XML... конечно же, забыл его упомянуть. Просто хотел выразиться что JSON не прокатит
---
А если XSLT применить? Долго будет? Не оптимально?
---
XSLT это же преобразование, оно очень быстрое, но нужно писать схему, если есть навыки. Но есть ли смысл?.. Все равно же в DOM придется преобразовать, потом уже XPath пользоваться. Судя по задаче, тут явно напрашивается либо соответствие, либо ТЗ, если полей поиска >1.
---
В место поиска по циклам, сделайте кеширование данных в соответствие или таблицу значений. Что бы искать без циклов.

Ну если это не поможет, то попробуйте разбить обработку на части и обрабатывать многопоточно.
---
JSON может быть прочитано в соответствие. В каком виде он прилетает к Вам?
---
Примерно вот в таком.