Чтобы проверить некоторые документы JSON, я должен убедиться, что мой JSON (представленный имеет карту) имеет определенный набор полей не больше, не меньше.
Насколько я знаю, сопоставление с образцомс чем-то вроде #{a := FieldA} = MyJSON
только гарантирует, что ключ a
присутствует в MyJSON
.К сожалению, maps:with/2
игнорирует пропущенные ключи, и большинство других функций карт одновременно работают с одной клавишей.
В этом случае, какой рекомендуемый способ гарантировать, что карта содержит определенное поле или список полей ине какой-нибудь другой?
Мое текущее, уродливое, решение состоит в том, чтобы сопоставить все необходимые мне ключи и перестроить новую карту, как в:
validate(#{a := A, b := B, c := C}) ->
#{a => A, b => B, c => C}.
Но это становится очень трудно поддерживать,очень быстро.