Mr. Jo:
Atualmente estou tentando analisar um JSON de um atributo de dados, mas eu estou recebendo um erro:
SyntaxError não capturado: símbolo inesperado em JSON na posição 0
Este é meu código:
jQuery( document ).ready( function ( $ ) {
let variations = $( "span" ).data( "variations" );
$( JSON.parse( variations ) ).each( function ( index, variation ) {
console.log( variation );
} );
} );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span data-variations='["\ud83d\udc36","\ud83d\udc31"]'></span>
Eu não obtê-lo. Eu estou imprimindo o JSON em PHP com esta função, mas eu estou preso na minha cabeça aqui:
<span data-variations='<?= esc_html( json_encode( $variations ) ) ?>'></span>
Seblat:
Você está tendo esse problema porque variations
já tem o valor analisado, como disse no doc :
Quando uma seqüência começa com '{' ou '[', então jQuery.parseJSON é usada para analisá-lo
jQuery( document ).ready( function ( $ ) {
let variations = $( "span" ).data( "variations" );
$( variations ).each( function ( index, variation ) {
console.log( variation );
} );
} );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span data-variations='["\ud83d\udc36","\ud83d\udc31"]'></span>