The /say Test example is itself workaround-able by using a plain string. The true application I needed JSON for includes a command closer to
/setblock ~1 ~ ~ minecraft:command_block 0 replace {Command:"{text:\"tp @p[score_ID=\"}, extra:[ {score:{name:\"x\",\"var\"}}, {text:\"] ~ ~ ~\"} ]"}
Which relies on JSON for the score component.
Ok, thanks. I'll look for another way for my application to work.