Skip to content

Instantly share code, notes, and snippets.

@Deiru2k
Last active August 29, 2015 14:16
Show Gist options
  • Save Deiru2k/e602c6fca94f5df2c5b6 to your computer and use it in GitHub Desktop.
Save Deiru2k/e602c6fca94f5df2c5b6 to your computer and use it in GitHub Desktop.
Of Projections and schemas
{
"type": "object",
"properties": {
"mainPhoto": {"type": "string"},
"propertyType": {"type": "string"},
"price": {
"type": "object",
"properties": {
"USD": {"type": "number"},
"RUB": {"type": "number"}
}
},
}
}
{"mainPhoto": True, "propertyType": True, "price.USD": True, "price.RUB": True}
@Viruzzz-kun
Copy link

а если встретится "price": True и "proce.USD": True, что должно сгенерироваться?

Мне кажется, тут должно быть что-то типа:

  1. сгенерировать объект верхнего уровня
  2. пойти по свойствам.
    2.1. разбить имя свойства по точкам, спускаться по элементам пути
    2.2. если элемент не создан в объекте, то создать

Тогда никакой рекурсии и никаких генераторов.

@Deiru2k
Copy link
Author

Deiru2k commented Mar 5, 2015

price не может быть, если у него есть вложенные объекты.
Если пояснить за контекст: Есть жсон схема, которая валидирует объект на входе\выходе ресурса.
Чтобы из БД лишний раз не тянуть не нужные поля, надо написать хуйню которая будет плющить многомерный словарь до того формата, который я пояснял, чтобы забирать из БД.

P.S.: Попробую сделать по твоей схеме, я о ней и думал. Просто мало ли, есть более красивые подходы.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment