面试时我必须通过 javascript 读取 json 文件。
json文件大致是这样的:
{ apple: {price: 1}, banana: {price: 2} }
我有一些解决方案,例如:
- 通过ajax方法读取
- 修改 json 文件,如“var json= { apple: {price: 1}, Banana: {price: 2} }”,并将其像 JavaScript 文件一样加载到 HTML 中,这样我就可以将其作为全局变量读取里>
但是当我问面试官时,他给了我提示:
使用脚本标记将 json 文件加载到 html,如下所示:
script type="application/json" src="scripts/data.json"
然后通过
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/