Best practice for embedding arbitrary JSON in the DOM?

I think your original method is the best. The HTML5 spec even addresses this use:

“When used to include data blocks (as opposed to scripts), the data
must be embedded inline, the format of the data must be given using
the type attribute, the src attribute must not be specified, and the
contents of the script element must conform to the requirements
defined for the format used.”

Read here: http://dev.w3.org/html5/spec/Overview.html#the-script-element

You’ve done exactly that. What is not to love? No character encoding as needed with attribute data. You can format it if you want. It’s expressive and the intended use is clear. It doesn’t feel like a hack (e.g. as using CSS to hide your “carrier” element does). It’s perfectly valid.

Leave a Comment