*Update* apparently data tag is not JSON (why use your own almost-json implementation? You could use lenient gson).
Valid JSON does not work with the /summon command. Keys are not accepted unless they are un-quoted.
- Escaping does not work (except for double-quotes)
(This works now)
It will take the first backslash as-is and then escape the double-quote, which of course causes an "Unbalanced quotation"
My two examples are 100% valid JSON, see: (they are, but apparently data tags aren't JSON)