All of the keys in JSON must be strings, so they should not need tags for themselves. Instead why not put the tag of the value assigned to the key in the key:
{
"s:string":"Hello, world!",
"b64:binary":"SGVsbG8sIHdvcmxk",
"i:integer":42,
"f:float":42.0,
"t:timestamp":"2016-11-02T02:07:30Z"
}
This prevents having to mess with the values in general and integers don't need to be encoded as strings.
EDIT:
I see this constraint:
Member names in TJSON must be distinct. The use of the same member name more than once in the same object is an error.
which is still satisfied, however you could have `i:foo` and `s:foo` which would result in redundant keys in the resulting JSON document. This constraint could be clarified that, untagged key names must be unique.
Another question, is a mimetype planned for this? `application/tjson`?