JSON strings are used by several commands, and have more strict format requirements than an arbitrary 'string' type. Checking conformance to these types (and marshaling objects to/from JSON format) should be done in the bindings code not client code.
<rdar://problem/25240933>