首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在HTML属性中存储JSON的最佳方法?

在HTML属性中存储JSON的最佳方法?
EN

Stack Overflow用户
提问于 2018-03-21 06:39:30
回答 2查看 0关注 0票数 0

我需要将JSON对象放入HTML元素的属性中。


使用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>

使用jQuery检索JSON:

$('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);

});
EN

Stack Overflow用户

发布于 2018-03-21 14:57:03

HTML不需要验证。

为什么不呢?验证非常容易,会发现很多错误。使用HTML 5data-*属性。

JSON对象可以是任意大小的(即巨大的)。

我没有看到任何关于属性大小的浏览器限制的文档。

如果确实遇到它们,则将数据存储在<script>。定义对象和映射元素id到那个对象中的。

如果JSON包含特殊字符怎么办?(例如,{test:‘<“myString/>’})

只需遵循在属性值中包含不受信任数据的常规规则。使用&amp;&quot;(如果用双引号包装属性值)或&#x27;(如果用单引号包装属性值)。

但是,请注意,这不是JSON(它要求属性名称是字符串,字符串仅用双引号分隔)。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档