这个JSON有什么问题:
What is wrong with this JSON:
我看了几个例子,我认为这是有效的,但是当我加载 JSON 作为脚本文件时,例如:
<script src="../js/side-menu.json"></script>
Chrome 给我错误:
SyntaxError: Unexpected token :
也就是"side-menu":
末尾的:
。这是 JSON:
{
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
}
这可能是因为浏览器将文件解释为 JavaScript?
json 对我来说也不错。检查这个问题,似乎相关
HTML/Javascript: how to access JSON data loaded in a script tag with src set
我不确定您这样做的目的是什么。
<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>
标签内。
JS 解析器将花括号与代码块而不是对象文字混淆。您可以通过将其放入括号中来避免这种情况 ({...}).
如果您这样做,您的文件将不再是 JSON。究竟如何解决这个后续问题取决于具体情况,但您必须首先考虑一些不同的事情:您希望包含一个仅包含 JSON 的文件能得到什么?毕竟,如果您这样做,这个 JSON 将不会在变量中可用,因为只有 JSON 值,没有分配给变量。
这里的问题是您正在尝试使用脚本标签加载纯 JSON,该标签默认寻找普通的旧脚本代码。你这里有两个一个选项s -
在脚本标签中指定type="application/json"
,同时给它一个id
。然后在任何需要访问数据的地方,使用它的 id 找到脚本元素并执行 JSON.parse($("#scriptelementid").html());
。如果您不使用它,请将 jQuery 替换为普通的 javascript。
或者,将您的 json 内容更改为此 -
var exportedData = {
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
};
我看了几个例子,我认为这是有效的,但是当我加载 JSON 作为脚本文件时,例如:
<script src="../js/side-menu.json"></script>
Chrome 给我错误:
SyntaxError: Unexpected token :
也就是"side-menu":
末尾的:
。这是 JSON:
{
"side-menu": {
"sections": [
{
"dashboard": [
{
"title": "Firewall",
"url": "dashboard_2.html",
"icon": "icon-bulb",
"menuVisual": "selected"
}
]}
]}
}
这可能是因为浏览器将文件解释为 JavaScript?
json 对我来说也不错。检查这个问题,似乎相关
HTML/Javascript: how to access JSON data loaded in a script tag with src set
我不确定您这样做的目的是什么。
<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>
标签内。
JS 解析器将花括号与代码块而不是对象文字混淆。您可以通过将其放入括号中来避免这种情况 ({...}).
如果您这样做,您的文件将不再是 JSON。究竟如何解决这个后续问题取决于具体情况,但您必须首先考虑一些不同的事情:您希望包含一个仅包含 JSON 的文件能得到什么?毕竟,如果您这样做,这个 JSON 将不会在变量中可用,因为只有 JSON 值,没有分配给变量。
这里的问题是您正在尝试使用脚本标签加载纯 JSON,该标签默认寻找普通的旧脚本代码。你这里有两个一个选项s -
在脚本标签中指定type="application/json"
,同时给它一个id
。然后在任何需要访问数据的地方,使用它的 id 找到脚本元素并执行JSON.parse($("#scriptelementid").html());
。如果您不使用它,请将 jQuery 替换为普通的 javascript。或者,将您的 json 内容更改为此 -
var exportedData = { "side-menu": { "sections": [ { "dashboard": [ { "title": "Firewall", "url": "dashboard_2.html", "icon": "icon-bulb", "menuVisual": "selected" } ]} ]} };