You slap a full text index on the base64 string. There's only a finite number of base64 substrings for the un-encoded substrings "id", 42, etcetera, so you first filter on those. Then you decode those full strings into json and do the final filtering application side. Easy!
{ "id": 42, "quantity": 12, bla bla bla
And you want rows where this column has quantity and quantity ≥ 20
How do you do it if you encode everything as base 64?