Мені потрібно помістити об’єкт JSON в атрибут HTML-елемента.
HTML не повинен перевірятись.Відповів Квентін: Зберігайте JSON в
data-*атрибуті , який є дійсним HTML5.Об'єкт JSON може бути будь-якого розміру - тобто величезний
Відповів Майку Морі: Ліміт атрибута HTML - це 65536 символів .
Що робити, якщо JSON містить спеціальні символи? напр
{foo: '<"bar/>'}Відповів Квентін: Кодуйте рядок JSON перед тим, як вводити його в атрибут відповідно до звичайних умов. Для PHP використовуйте функцію .
htmlentities()
EDIT - Приклад рішення з використанням PHP та jQuery
Запис JSON в атрибут HTML:
<?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 за допомогою jQuery:
$('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ви повинні використовувати $(this).data('json'), jQuery вказав на цій частині.