我已经查看了几个示例,我认为这是有效的,但是当我将JSON加载为脚本文件时,例如:
SyntaxError: Unexpected token :
Chrome给了我错误:
:
这是"side-menu":
末尾的{
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
}
。这是JSON:
ACTION_BATTERY_CHANGED
这可能是因为浏览器正在将文件解释为JavaScript吗?
答案 0 :(得分:2)
HTML/Javascript: how to access JSON data loaded in a script tag with src set
答案 1 :(得分:1)
JS解析器将花括号与代码块混淆而不是对象文字。您可以通过将其放入括号中来避免这种情况({...})。
如果您这样做,您的文件将不再是JSON。这个后续问题究竟是如何解决的,取决于你,但是你必须先考虑一些不同的东西:你对包含仅包含JSON的文件的期望是什么?毕竟,如果你这样做,这个JSON在变量中是不可用的,因为它只有JSON值,没有赋值给变量。
答案 2 :(得分:0)
我不确定你想要做到这一点。
<script src="../js/side-menu.json"></script>
这将获得你的json并将其解释为javascript。
也许您正在寻找的是。
<script language="javascript">`
var my_json = {
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
};
</script>
在<script>
标记内。
答案 3 :(得分:0)
这里的问题是您正在尝试使用Script标记加载纯JSON,该标记默认情况下查找普通的旧脚本代码。你有两个一个选项 s -
在脚本代码中指定 type="application/json"
,同时为其指定id
。然后,只要您需要访问数据,请使用其id找到脚本元素并执行JSON.parse($("#scriptelementid").html());
。如果您不使用jQuery,请使用简单的javascript替换jQuery。
或者,将您的json内容更改为此 -
var exportedData = {
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
};