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 las orgías de citas son horribles (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.