Size: a a a

Elm Lang сообщество разработчиков

2019 March 14

G

GG in Elm Lang сообщество разработчиков
источник
2019 March 16

0

0_0 in Elm Lang сообщество разработчиков
подскажите пожалуйста, есть дерево вложенных элементов в json: https://pastebin.com/yjacm2bb
Вложенность определяется по parent_id, он указывает на id элемента родителя, как рекурсивно его спарсить в структуру на elm?
Вообще json не обязатель такой, можо уже заранее на сервере сформировать массив детей у элемента.
источник

0

0_0 in Elm Lang сообщество разработчиков
Если я буду составлять вот такую структуру, то выдаст ошибку, что мол нельзя указывать на саму себя
источник

0

0_0 in Elm Lang сообщество разработчиков
А если так, то не совсем понимаю, как ее правильно заполнить
источник

AT

Andr T in Elm Lang сообщество разработчиков
Maybe(List Tree) не пробовал?
источник

0

0_0 in Elm Lang сообщество разработчиков
источник

G

GG in Elm Lang сообщество разработчиков
0_0
А если так, то не совсем понимаю, как ее правильно заполнить
а алгоритм обхода твоей структуры есть?
источник

G

GG in Elm Lang сообщество разработчиков
0_0
подскажите пожалуйста, есть дерево вложенных элементов в json: https://pastebin.com/yjacm2bb
Вложенность определяется по parent_id, он указывает на id элемента родителя, как рекурсивно его спарсить в структуру на elm?
Вообще json не обязатель такой, можо уже заранее на сервере сформировать массив детей у элемента.
этой
источник

G

GG in Elm Lang сообщество разработчиков
вобще, хотелось бы хотя бы чтоб был childId вместо parentId, как-то странно строить дерево снизу верх
источник

0

0_0 in Elm Lang сообщество разработчиков
Единственное что у меня получилось спарсить это:
источник

0

0_0 in Elm Lang сообщество разработчиков
источник

AT

Andr T in Elm Lang сообщество разработчиков
type alias Tree =
   {
     id: Int
   , parentId: Int
   , name: String
   , text: String
   , children: Children
   }

type Children =
   Children (List Tree)
источник

G

GG in Elm Lang сообщество разработчиков
0_0
подскажите пожалуйста, есть дерево вложенных элементов в json: https://pastebin.com/yjacm2bb
Вложенность определяется по parent_id, он указывает на id элемента родителя, как рекурсивно его спарсить в структуру на elm?
Вообще json не обязатель такой, можо уже заранее на сервере сформировать массив детей у элемента.
ну нет. так не получиься построить дерево с конца, а если получится, то это супер сложная задача. Вот если сверху строить, то должна быть рутовая нода, у которй id=0, ищем ее, и идем рекурсивно по ее чилдам типо children = [1, 2] это id чилдренов. А вот снизу проблемно строить, так как мы не знаем что является последней нодой, а если знаем, то тогда мы будем подниматься вверх, но в таком случае мы обработаем только одну ветвь, об остальных мы не узнаем
источник

G

GG in Elm Lang сообщество разработчиков
0_0
подскажите пожалуйста, есть дерево вложенных элементов в json: https://pastebin.com/yjacm2bb
Вложенность определяется по parent_id, он указывает на id элемента родителя, как рекурсивно его спарсить в структуру на elm?
Вообще json не обязатель такой, можо уже заранее на сервере сформировать массив детей у элемента.
сделай на сервере json типо

{id = 0, text = "root" children = [1, 5]}

а еще лучше такой

{ text = "root"
, children = [
  { text = "left",  children = [] },
  { text = "right",  children = [] }
]
}
источник

ST

Slava Turchaninov in Elm Lang сообщество разработчиков
источник

0

0_0 in Elm Lang сообщество разработчиков
С этим не проблема, но как такое спарсить на эльме?
источник

0

0_0 in Elm Lang сообщество разработчиков
сделай на сервере json типо

{id = 0, text = "root" children = [1, 5]}

а еще лучше такой

{ text = "root"
, children = [
  { text = "left",  children = [] },
  { text = "right",  children = [] }
]
}
источник

0

0_0 in Elm Lang сообщество разработчиков
Нашел очень хороший пример из документации, может кому нибудь пригодится: https://package.elm-lang.org/packages/elm/json/latest/Json-Decode#lazy

Только единственное что не понятно - это вывод дерева, как обратиться к этому List?
источник

0

0_0 in Elm Lang сообщество разработчиков
Рендерить пытаюсь так. (В первый раз не тот скрин отправил)
источник

0

0_0 in Elm Lang сообщество разработчиков
Вообщем я разобрался, если кому пригодится, то вот как я это сделал: https://pastebin.com/wFh6pyC5
источник