Bir HTML öğesindeki bir özniteliğe bir JSON nesnesi koymam gerekiyor.
HTML'nin doğrulanması gerekmez.Quentin tarafından cevaplandı: JSON'yi geçerli HTML5 olan bir
data-*
öznitelikte saklayın.JSON nesnesi herhangi bir boyutta olabilir - yani çok büyük
Maiku Mori tarafından cevaplandı: Bir HTML niteliği için sınır potansiyel olarak 65536 karakterdir .
Ya JSON özel karakterler içeriyorsa? Örneğin
{foo: '<"bar/>'}
Quentin tarafından yanıtlandı: JSON dizesini olağan kurallara göre özniteliğe koymadan önce kodlayın. PHP için işlevi kullanın .
htmlentities()
EDIT - PHP ve jQuery kullanan örnek çözüm
JSON'yi HTML özelliğine yazma:
<?php
$data = array(
'1' => 'test',
'foo' => '<"bar/>'
);
$json = json_encode($data);
?>
<a href="#" data-json="<?php echo htmlentities($json, ENT_QUOTES, 'UTF-8'); ?>">CLICK ME</a>
JSON'u jQuery kullanarak alma:
$('a').click(function() {
// Read the contents of the attribute (returns a string)
var data = $(this).data('json');
// Parse the string back into a proper JSON object
var json = $.parseJSON($(this).data('json'));
// Object now available
console.log(json.foo);
});
data-json
kullanman gereken isimlendirildiyse $(this).data('json')
, jQuery seni o kısımda ele aldı.