I think you misunderstood me, and I didn't express myself clearly

for me there should not be any "detachable" for `value'
if you want to put Void, then just use `put'

On the other hand, accepting Void for put_string could be convenient if you don't want to check that the original string is attached.

But  usually we try to have the smallest json content, so if this is Void .. then just don't `put' it in object, unless this is required by spec.