javascript - 尝试将json文件直接加载到HTML中并通过javascript读取其内容

标签 javascript html json

面试时我必须通过 javascript 读取 json 文件。

json文件大致是这样的:

{ apple: {price: 1}, banana: {price: 2} }

我有一些解决方案,例如:

  1. 通过ajax方法读取
  2. 修改 json 文件,如“var json= { apple: {price: 1}, Banana: {price: 2} }”,并将其像 JavaScript 文件一样加载到 HTML 中,这样我就可以将其作为全局变量读取

但是当我问面试官时,他给了我提示:

  1. 使用脚本标记将 json 文件加载到 html,如下所示:

    script type="application/json" src="scripts/data.json"

  2. 然后通过eval(json)读取你的js文件中的数据

我很困惑:如何仅通过将数据加载为脚本标签而不进行修改来访问数据?

最佳答案

你不能这样做:

HTML/Javascript: how to access JSON data loaded in a script tag with src set

这会不会是面试官的一个刁钻问题……?

使用ajax,在我看来这是唯一正确的方法。其他解决方案属于黑客类别。

此外,正如 Franco 提到的,不要使用 eval(),除非您必须支持非常旧的浏览器并且不关心安全性。使用 JSON.parse() 代替。甚至 IE8 也支持它。调用 eval 会评估/执行其参数 - 因此,这是某人试图将恶意代码注入(inject)您的网站的攻击媒介。

关于javascript - 尝试将json文件直接加载到HTML中并通过javascript读取其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34111435/

相关文章:

javascript - 将输入字段(类型=数字)限制为 1 到 20

javascript - 如何在 javascript 中使用 Angular JS 变量

javascript - 确定进度条上的点击位置?

json - nginx 没有将 mime 类型 'json' 传递给 url 'jsonrpc' 处的 Odoo RPC 调用

javascript - Bootstrap 旋转木马 slider : 4 Images at once - only shows one image at a time?

javascript - 单击文本框字段并获取所选日期的值时,如何在 html 中显示日期元素?

javascript - 我想通过使用 php 和 js 当数据库中的日期为空时向用户发出警报

javascript - 如何在 javascript 中正确使用 DOM 样式边距顶部属性?

PHP7.1 json_encode() float 问题

mysql - 选择json数组中符合mysql条件的所有对象