Question

I need to put json in an html attribute like so:

<video id="video1" 
class="video-js vjs-default-skin" 
width="640" height="480" 
data-setup='{"controls" : true, "autoplay" : false, "preload" : "auto"}'>

Hamlet does not understand html single quote strings, it creates the error message:

unexpected ":" expecting ">"

What is the recommended practice for adding literal json to html attributes in a string?

Was it helpful?

Solution

Escape the quotes in html using &quot;

<video id="video1" 
class="video-js vjs-default-skin" 
width="640" height="480" 
data-setup='{ &quot;controls&quot;:true,&quot;autoplay&quot;:false,&quot;preload&quot;: &quot;auto&quot;}'>

OTHER TIPS

The attribute syntax used is correct by HTML rules, and the attribute value is correct by JSON syntax, so if some software fails to process it, check its documentation for applicable limitations and/or submit a bug report.

If the issue is really that the software cannot handle HTML attribute specifications when attribute value is single quotes, use double quotes around it and correspondinly single quotes inside it:

data-setup="{'controls' : true, 'autoplay' : false, 'preload' : 'auto'}"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top