If your sending id via json you should be using json to encode type either:
{ order:"550e8400-e29b-11d4-a716-446655440000" }
Or if for some reason the value could contain multiple types:
{ thing: { t:"order", id:"550e8400-e29b-11d4-a716-446655440000" } }
Even then just use:
{ thing: { order :"550e8400-e29b-11d4-a716-446655440000" } }
This is redundant and not necessary adding overhead:
{ order: "order-550e8400-e29b-11d4-a716-446655440000" }
Storing that in your db as json even worse (Mongo, JSONB), storing as varchar in normal column not much better.
If your not storing ID with a type prefix in the db, then thats not the form of your id's that just the UI/encoding for them in your app which eliminates half the supposed advantage which was easy debugging say in db query tools. It also means you are parsing / deparsing "order-550e8400-e29b-11d4-a716-446655440000" somewhere in your db mapper code instead of just using your json or query string parser or protobuf or whatever, why?.