@dlangru

Страница 30 из 719
Dmitry
22.06.2016
13:58:42
просто нужно универсальное решение

Мерлин
22.06.2016
13:58:50
да я думаю как лучше сделать... структурой описать или как
А есть варианты? Структура В которой есть массив структур

Oleg
22.06.2016
13:59:23
по сути есть вариан оставить после десериализации в Json объекте

Dmitry
22.06.2016
13:59:27
а если там поле type будет неизвестное количество раз встречаться, то как быть?

Google
Мерлин
22.06.2016
13:59:30
Поле features - это ассоциативный массив структур, в которое есть поле юиона и поле Тип

Oleg
22.06.2016
13:59:51
http://gis-lab.info/docs/geojson_ru.html#02

второй пункт

Объект GeoJSON может иметь необязательное свойство «crs»

вот тут может быть, а может не быть

я вот сейчас задумался

а разве json вообще позволяет поля с 1 именем?

Dmitry
22.06.2016
14:01:28
как то так будет? ` struct MyData { string type; Type t1; } struct Type { string type; string geometry; string property; }`

Oleg
22.06.2016
14:01:29
это должно как-то регламентироваться в стандарте json

Мерлин
22.06.2016
14:01:32
Поле features - это ассоциативный массив структур, в которое есть поле юиона и поле Тип
Когда мы хотим получить значение - мы сначала смотрим тип А потом получаем данные из юниона Всё

Oleg
22.06.2016
14:02:29
по сути это сделанно в типе Json в vibe и в JSONValue в std

Google
Oleg
22.06.2016
14:02:39
так что вопрос в архитектуре

Dmitry
22.06.2016
14:03:46
А как лучше если оно: "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},

Oleg
22.06.2016
14:03:49
а вот тут уже сложнее

Все геометрии, тип которых отличен от «Geometry Collection», должны иметь свойство «coordinates». Значение данного свойства всегда представляет собой массив. Структура элементов массива определяется типом геометрии.

и что ты в строке будешь хранить?

кусок json строки?)

Dmitry
22.06.2016
14:04:42
да...

Oleg
22.06.2016
14:04:47
тогда какой смысл это всё в структуру делать?

Dmitry
22.06.2016
14:05:00
я просто боюсь с уровнем вложенности структуры запутаться

Oleg
22.06.2016
14:05:00
это то понятно

но это подразумевает переменный тип

либо наследование

а классы в качестве точек это плохо

вернее наоборот

точки в качестве классов

тут уже придётся tagged union делать

хотя, чтобы не изобретать велосипед можно посмотреть, может есть уже либы какие для этого

типа alias ElemT = megaTemplateStructConstructor!(Type1,Type2,Type3); ElemT a; if( a.isType1 == true )

Google
Dmitry
22.06.2016
14:08:21
А может проще как JSON будет оставить все же? И написать метод хождения по нему?

Oleg
22.06.2016
14:08:36
это твой код и твоё решение)

в принципе это минимум работы

в том плане, что тебе не нужно описывать структуру явно

ты её будешь всегда как-то подразумевать в алгоритмах

и тогда твой код будет ломаться, когда будет исполнятся алгоритм, а не когда будет парситься json

Dmitry
22.06.2016
14:11:01
это ты про метод работы с JSON ?

самопальный

Oleg
22.06.2016
14:11:10
я про программу в целом

зачем тебе самопальные методы работы с json?

что vibe за тебя распарсит строку с json'ом, что std.json, всё приходит к одному

у тебя будет root объект json, а какую он имеет структуры ты узнаешь, только когда начнёшь его использовать

Dmitry
22.06.2016
14:12:31
не, я допустим если мне нужно будет для каждого JSON поле имени получать

допустим сделать метод получения имени или типа геометрии

для каждого

Oleg
22.06.2016
14:13:24
ну вот ты и будешь проверять на каждом шагу "есть ли поле такое, если есть, но смотрим дальше..."

и что такое "поле имени"?

Dmitry
22.06.2016
14:14:04
ну { "type": "Feature", "properties": { "ID": 203, "NAME": "RUSSIAN FEDERATION",

Oleg
22.06.2016
14:14:26
ну так properties вообще не имеет регламентированной структуры

Dmitry
22.06.2016
14:14:47
а ну да точно

Google
Oleg
22.06.2016
14:14:50
NAME может там быть, а может и не быть

насчёт этого мы в самом начале сказали)

Dmitry
22.06.2016
14:27:27
Вообще хранение в БД что даст то?

Какие минусы от ФС получу?

сложнее будет сделать операции вида: "получить набор документов с таким-то типом" ?

Oleg
22.06.2016
14:29:13
да

как раз об этом писал

как ты себе представляешь эту операция на ФС вообще?

Dmitry
22.06.2016
14:29:46
м... жаль что для Ди ничего кроме https://gitlab.com/PiotrekDlang/DraftLib/ нет

а то как по мне то что нужно. Минимум фишек и портабельная

Admin
ERROR: S client not available

Dmitry
22.06.2016
14:31:24
тока она глубокая альфа, но интересно было бы попробовать... но страшно что дальше развиваться не будет

Oleg
22.06.2016
14:33:55
и что она делает?

Dmitry
22.06.2016
14:35:00
Структуры позволяет в виде коллекция хранить

Oleg
22.06.2016
14:36:44
мне кажется это не что-то особенное

Dmitry
22.06.2016
14:37:54
Для ди альтернатив нет

Просто монги и тд слишком тяжеловесны

Oleg
22.06.2016
14:38:43
а что за база тут используется?

а...

это и есть сама по себе база

Google
Oleg
22.06.2016
14:41:18
напиши автору, спроси его платы

Dmitry
22.06.2016
14:47:26
Objects").filer!(obj => obj.identity.name.canFind("J") && obj.age > 20);

На вид то что надо

Dmitry
22.06.2016
14:49:20
Просто как хранилище

qwe
22.06.2016
15:10:53
Dub можно поставить на Ubuntu через apt? https://github.com/dlang/dub#debianubuntu-linux

или больше неактуально?

никто не знает случайно?

Oleg
22.06.2016
15:13:59
а вообще на линуксе много кого тут?

у меня fedora

qwe
22.06.2016
15:15:25
arch/ubuntu

на из ауры поставил без проблем

на арче*

Oleg
22.06.2016
15:16:49
видимо федорой в сообществе мало кто пользуется

а это важно из пакета или из тарбола?

qwe
22.06.2016
15:18:45
да нет, просто хотел поставить из пакета

а все, заробило

ключик не добавил

и в итоге там d-apt)

Dmitry
22.06.2016
16:31:01
Так, а что мне мешает sqlite заюзать и хранить геоджейсон в текстовом поле

Предварительно заполняя инфу которую про него получается выцепить

Есть минусы?

Страница 30 из 719