首页 > 解决方案 > 如何将对象从 HTML 传递到 JavaScript

问题描述

如何将 html 数据属性转换为 JavaScript 对象?
我尝试使用 JSON.parse() 但它出现了一些错误
我的字符串数据的结果

{
  _id: 5f71ea3362749a305427a012,
  name: 'House With Beauty Backyard',
  __v: 0
}

当我使用 JSON.parse() 它返回错误

VM5246:2 Uncaught SyntaxError: Unexpected token _ in JSON at position 4

我的 EJS 代码

<a href="javascript:void()" data-category="<%= category[i] %>"><i class="fas fa-edit"></i></a>

我的 JS 代码

<script>
    $('#dataTable .btn-update').on('click', function () {
        let dataString = $(this).data('category');
        console.log(dataString);
        let dataJson = JSON.parse(dataString);
        console.log(dataJson);
        $('#update-modal').modal('show');
    })
</script>

标签: javascriptjquerynode.jsexpressejs

解决方案


JSON 需要引号 ("") 来表示键和字符串值。

这将是您具有有效形式的“字符串数据”:

{
  "_id": "5f71ea3362749a305427a012",
  "name": "House With Beauty Backyard",
  "__v": 0
}

如果您将数据格式更改为有效的 JSON,解析错误将消失。(RFC 8259)

在这里您可以找到有关 JSON 的更多信息: https ://tools.ietf.org/pdf/rfc8259.pdf


推荐阅读