JSON is awesome, but it's troublesome that it can't represent binary data (without a separate encoding, which requires metadata, and more code on both sides of the wire).<p>I "discovered" a format that easily solves this, which I call QSN (quoted string notation):<p><a href="http://www.oilshell.org/release/latest/doc/qsn.html" rel="nofollow">http://www.oilshell.org/release/latest/doc/qsn.html</a><p>It's just Rust string literals with single quotes instead of double quotes. Rust string literals have \x01 for arbitrary bytes like C or Python string literals, but without the legacy of say \v and octal, and with just \u{} rather than \u and \U.<p>I use in Oil to unambiguously parse and print filenames, display argv arrays, etc. All of these are arbitrary binary data.<p>GNU tools have about 10 different ways to do this, but QSN makes it consistent and precise.<p>I'm expanding it to QTSV, a variant of TSV, but if you like you could also make some JSON variant. Technically using single quotes rather than double would make it backward compatible with JSON.