Pregunta cosmética: tengo un elemento html que contiene posibles dimensiones para algunas imágenes incrustadas, estas se almacenan como:
<div class="inside" data-dimensions='{ "sx": 213, "sy": 160, "mx": ...Saco la dimensión de datos y la analizo con jQuery.parseJSON(jQuery.data("dimensions")) todo bien y siguiendo de cerca el documento de jquery.
Sin embargo, estoy acostumbrado a encapsular todos mis atributos html entre comillas dobles:
<div class="inside" data-dimensions="{ 's-x': 213, 's-y': 160, 'm-x': ...Pero luego obtengo una excepción json mal formada. ¿Hay alguna forma de obedecer mi ley autoimpuesta de "atributos html entre comillas dobles"?
Puede utilizar " en lugar de " . Pero citar orgías es horrible (en HTML incluso más que en PHP), así que es mejor usar comillas simples para sus atributos html.
Por cierto, no necesita usar .parseJSON ; jQuery lo hace automáticamente si el atributo de data- comienza con { (en realidad, es más complejo; aquí está la expresión regular que usa para probar si debe analizarse como JSON: ^(?:\{.*\}|\[.*\])$ ).
Pruebe esto y podrá mantener JSON bien formateado en el atributo:
$.parseJSON($('.inside').data('dimensions').replace(/'/g,"\""))La especificación JSON estipula que las claves y los valores (de cadena) deben citarse entre comillas dobles.
Los atributos HTML se pueden incluir entre comillas simples o dobles.
Personalmente, no pelearía y simplemente iría con lo que causa la menor cantidad de fricción y es más fácil de entender para todos, que en este caso es comillas simples los atributos HTML y usar comillas dobles dentro del valor del atributo.