Assuming you're talking about real, strict JSON (no fad, such as unmentioned keys) ...
jsonnot too different from text. It is not much different from JSON validation .
jsonb- This is a different beast compared to these two: it is a full-fledged data structure with its own internal format, which has much more operations available when searching. For example, jsonnot applicable =(equality operator). jsonbIt has. ( textalso, although it is semantically different.)
It is much more sensible to index, but it needs to be converted back and forth while reading and writing.
Given that jsonbdoes not look like a choice of sound here.
... Therefore, only one solution remains:
, JSON ? ? ( , ) ?
json . text - , . , JSON, . !