|
Нужно создать в 1С массив-структур в формате json | ☑ | ||
---|---|---|---|---|
0
Обработка
24.11.21
✎
09:11
|
Вот структра кторая требуется:
"route_points": [ { "coordinates": [71.40182314019768,51.13285146954383] }, { "coordinates":[71.50529418933989,51.13162822572868] } ] route_points N-значный массив. Этот массив в которм, структура из двух двухзначных массивов в которых хранится точки координат (долгота и широта) отправки и поступления. Как это реализовывать? |
|||
1
Kassern
24.11.21
✎
09:14
|
(0) Присваиваете имя массиву, Для каждой coordinates добавляете начало объекта, в объекте снова массив с именем coordinates, в нем уже пихаете точки.
|
|||
2
Галахад
гуру
24.11.21
✎
09:16
|
МассивКоодр = Новый Массив;
МассивКоорд.Добавить(а); МассивКоорд.Добавить(б); Коорд = Новый Структура; Коорд.Вставить("coordinates", МассивКоорд); route_points = Новый Массив; route_points.Добавить(МассивКоорд); |
|||
3
Kassern
24.11.21
✎
09:17
|
(0) чтобы было проще понимать:
[ - Массив { - объект |
|||
4
Галахад
гуру
24.11.21
✎
09:19
|
(2)+ Млин:
МассивКоодр = Новый Массив; МассивКоорд.Добавить(а); МассивКоорд.Добавить(б); Коорд = Новый Структура; Коорд.Вставить("coordinates", МассивКоорд); route_points = Новый Массив; route_points.Добавить(Коорд); |
|||
5
Галахад
гуру
24.11.21
✎
09:22
|
Да млин.
Структура = Новый Структура; Структура.Вставить("route_points", route_points); |
|||
6
Обработка
24.11.21
✎
09:39
|
Спасибо за помощь и ответы.
Но мне кажется не совсем то. Вместо 2х координат получается один. |
|||
7
Галахад
гуру
24.11.21
✎
09:41
|
(6) Напрягись и добавь еще одну.
|
|||
8
mTema32
24.11.21
✎
09:50
|
Вот это: "coordinates": [71.40182314019768,51.13285146954383]
Стандартными средствами не получится сделать, если прямо так нужно с квадратными скобками. Пилите вручную. |
|||
9
Garykom
гуру
24.11.21
✎
09:50
|
(0) не можешь через структуры (соответствия) и массивы делай напрямую через ЗаписьJSON
https://wonderland.v8.1c.ru/blog/sredstva-raboty-s-json/ |
|||
10
Garykom
гуру
24.11.21
✎
09:52
|
(8) все получится
|
|||
11
Garykom
гуру
24.11.21
✎
09:53
|
(10) http://v8.1c.ru/o7/201410json/4.png из (9)
|
|||
12
ДенисЧ
24.11.21
✎
09:55
|
(8) Это с какого перепугу?
|
|||
13
Галахад
гуру
24.11.21
✎
09:58
|
(9) Не учи плохому. :-)
|
|||
14
Garykom
гуру
24.11.21
✎
09:59
|
(13) практически это более шустрый способ
|
|||
15
Garykom
гуру
24.11.21
✎
10:00
|
(14)+ на реально больших объемах с мало оперативки особенно оптимальней вручную напрямую
|
|||
16
Kassern
24.11.21
✎
10:01
|
(0) А где у вас начало объекта?
Нельзя начинать json с имени свойства на обернув это дело в объект! |
|||
17
Kassern
24.11.21
✎
10:02
|
(16) Вот так будет правильно:
{ "route_points": [{ "coordinates": [71.40182314019768, 51.13285146954383] }, { "coordinates": [71.50529418933989, 51.13162822572868] } ] } |
|||
18
Kassern
24.11.21
✎
10:07
|
(6) Ну так добавьте 2 координаты)
route_points = Новый Массив; route_points.Добавить(Коорд); route_points.Добавить(Коорд); |
|||
19
Гипервизор
24.11.21
✎
10:13
|
Т.е. я правильно понимаю, для примера из (0) формирование json без использования сериализации будет выглядеть вот так?
ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("route_points"); ЗаписьJSON.ЗаписатьНачалоМассива(); ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("coordinates"); ЗаписьJSON.ЗаписатьНачалоМассива(); ЗаписьJSON.ЗаписатьЗначение(71.40182314019768); ЗаписьJSON.ЗаписатьЗначение(51.13285146954383); ЗаписьJSON.ЗаписатьКонецМассива(); ЗаписьJSON.ЗаписатьКонецОбъекта(); ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("coordinates"); ЗаписьJSON.ЗаписатьНачалоМассива(); ЗаписьJSON.ЗаписатьЗначение(71.50529418933989); ЗаписьJSON.ЗаписатьЗначение(51.13162822572868); ЗаписьJSON.ЗаписатьКонецМассива(); ЗаписьJSON.ЗаписатьКонецОбъекта(); ЗаписьJSON.ЗаписатьКонецМассива(); ЗаписьJSON.ЗаписатьКонецОбъекта(); СтрокаJSON = ЗаписьJSON.Закрыть(); |
|||
20
Kassern
24.11.21
✎
10:16
|
(19) да, только ТС забыл обернуть свой текст в {} чтобы превратить в json.
|
|||
21
mTema32
24.11.21
✎
10:20
|
(0)
Если вот это "[12.121, 1222]" - просто строка, тогда вот так надо: СтруктураОсновная = Новый Структура; Массив = Новый Массив; СтруктураЭлемента1 = Новый Структура; СтруктураЭлемента1.Вставить("coordinates", "[71.263,12.3213]"); СтруктураЭлемента2 = Новый Структура; СтруктураЭлемента2.Вставить("coordinates", "[71.263,12.3213]"); Массив.Добавить(СтруктураЭлемента1); Массив.Добавить(СтруктураЭлемента2); СтруктураОсновная.Вставить("route_points", Массив); ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, СтруктураОсновная); Json = ЗаписьJSON.Закрыть(); Циклы там и обход сами добавите. |
|||
22
Kassern
24.11.21
✎
10:24
|
(21) вы походу не уловили суть данного json. в coordinates передается массив координат. Скобки [] - говорят о массиве значений, а запятая разделяет их. В данном случае 71.263 и 12.3213 - две точки координат.
|
|||
23
Garykom
гуру
24.11.21
✎
10:25
|
(21) ыыыыыы
|
|||
24
Kassern
24.11.21
✎
10:25
|
(21) уже скинули верный текст, которые правильно формирует json еще в начале топика. Вот он собранный в 1 посте:
МассивКоорд = Новый Массив; МассивКоорд.Добавить("71.40182314019768"); МассивКоорд.Добавить("51.13285146954383"); Коорд = Новый Структура; Коорд.Вставить("coordinates", МассивКоорд); route_points = Новый Массив; route_points.Добавить(Коорд); route_points.Добавить(Коорд); Структура=Новый Структура("route_points",route_points); ЗаписьJson=Новый ЗаписьJSON; ЗаписьJson.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJson,Структура); Результат=ЗаписьJson.Закрыть(); |
|||
25
Обработка
24.11.21
✎
10:37
|
Уточню для тез кто чуть ушел не в ту сторону.
Мне нужно чтоб внутри были две точки "Пункт Отправитель" и "Пункт получатель" |
|||
26
mistеr
24.11.21
✎
10:40
|
(22) >две точки координат
Ты хотел сказать "две координаты точки". |
|||
27
Garykom
гуру
24.11.21
✎
10:59
|
для меня немного странно что человек с таким вот опытом v8: Ищу работу (Казахстан, Алматы)
не может понять простейшую вещь |
|||
28
Garykom
гуру
24.11.21
✎
10:59
|
||||
29
Обработка
24.11.21
✎
11:05
|
(27) Открою тайну. Самому некогда тестить и придумывать.
По сути ветка и тема моей коллеги. У нее нет аккаунта тут и особо не ходит по форумам пока. Извините если пришлось поэксплуатировать ваши мозги. )) |
|||
30
Обработка
24.11.21
✎
11:06
|
(29) к (28)...
|
|||
31
Garykom
гуру
24.11.21
✎
11:08
|
(29) Т.е. ты с таким опытом не мог с лету ответить коллеге и завел тут тему? На смешную тему.
|
|||
32
mTema32
24.11.21
✎
11:09
|
(25) Сч = 4;
ОсновнойМассив = Новый Массив; Пока Сч > 0 Цикл СтруктураОсновная = Новый Структура; Массив = Новый Массив; МассивКоординат1 = Новый Массив; МассивКоординат1.Добавить("71.263"); МассивКоординат1.Добавить("12.3213"); МассивКоординат2 = Новый Массив; МассивКоординат2.Добавить("71.265"); МассивКоординат2.Добавить("12.3215"); СтруктураЭлемента1 = Новый Структура; СтруктураЭлемента1.Вставить("coordinates", МассивКоординат1); СтруктураЭлемента2 = Новый Структура; СтруктураЭлемента2.Вставить("coordinates", МассивКоординат2); Массив.Добавить(СтруктураЭлемента1); Массив.Добавить(СтруктураЭлемента2); СтруктураОсновная.Вставить("route_points", Массив); ОсновнойМассив.Добавить(СтруктураОсновная); Сч = Сч - 1; КонецЦикла; ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, ОсновнойМассив); Json = ЗаписьJSON.Закрыть(); Вот так што ле надо? |
|||
33
mTema32
24.11.21
✎
11:10
|
(29) Охеренно. А нам тут нечем заняться стало быть.
|
|||
34
acht
24.11.21
✎
11:10
|
(29) > ветка и тема моей коллеги.
Еще одно ленкавовка |
|||
35
Обработка
24.11.21
✎
11:13
|
(31) (33) Когда вам будет уже 50 лет у вас подход к решению задач точно изменится.
|
|||
36
acht
24.11.21
✎
11:15
|
(35) Оправдание своим возрастом, оно такое... забавное
|
|||
37
Garykom
гуру
24.11.21
✎
11:16
|
(35) Мне думаешь еще 9 лет что то сильно изменят?
Нет уж. Вайтишник это диагноз. |
|||
38
acht
24.11.21
✎
11:17
|
(35) Кстати, а кто это пишет - ты или твоя коллега? =))))))))))))
|
|||
39
Garykom
гуру
24.11.21
✎
11:20
|
(38) "У моей подруги с её парнем"
|
|||
40
Обработка
24.11.21
✎
11:22
|
Ну вы не позортье меня перед ней.
Ей 20 лет мне 50. Эту аккаунт полностью мой. Всегда сам писал и отвечал. Аналогичным образом решал проблему коллег не раз за эти 15 лет. Кстати я коллеге на словах сразу ответил но не было 100% уверенности. И обратился к сообществу. Ничего в этом не вижу зазорного. Иногда могу тут запостить совсем тупой вопрос просто из-за того что не успеваю продумать... Конечно хейта тоже получаю. Но главное решается задача. |
|||
41
mistеr
24.11.21
✎
11:24
|
(33) Если быть до конца честным, то да, так и есть. :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |