jquery - 为什么程序无法读取文件 json?

标签 jquery json arbor.js

嗨,我不明白为什么如果我在变量中写入 json 是正确的:

var theUI  = {
"nodes":{"progetto 1":{"color":"red", "shape":"dot", "alpha":1},
"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},
"halfviz":{"color":"#a7af00", "alpha":0, "link":""},
"atlas":{"color":"#a7af00", "alpha":0, "link":""},
"echolalia":{"color":"#a7af00", "alpha":0, "link":""},
"docs":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"reference":{"color":"#922E00", "alpha":0, "link":""},
"introduction":{"color":"#922E00", "alpha":0, "link":""},
"code":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"github":{"color":"orange", "alpha":0, "link":""},
".zip":{"color":"orange", "alpha":0, "link":""},
".tar.gz":{"color":"orange", "alpha":0, "link":""}
},
"edges":{
"progetto 1":{
"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}
},
"demos":{"halfviz":{},
"atlas":{},
"echolalia":{}
},
"docs":{"reference":{},
"introduction":{}
},
"code":{".zip":{},
".tar.gz":{},
"github":{}
}
}
}
var sys = arbor.ParticleSystem()
sys.parameters({stiffness:900, repulsion:2000, gravity:true, dt:0.015})
sys.renderer = Renderer("#sitemap")
sys.graft(theUI)
var nav = Nav("#nav")
$(sys.renderer).bind('navigate', nav.navigate)
$(nav).bind('mode', sys.renderer.switchMode)
nav.init()
})

如果我从 json 文件中提供数据,程序将无法工作:

var theUI  = $.getJSON("data.json")


var sys = arbor.ParticleSystem()
sys.parameters({stiffness:900, repulsion:2000, gravity:true, dt:0.015})
sys.renderer = Renderer("#sitemap")
sys.graft(theUI)
var nav = Nav("#nav")
$(sys.renderer).bind('navigate', nav.navigate)
$(nav).bind('mode', sys.renderer.switchMode)
nav.init()
})

它执行获取并读取 json,但程序无法运行。

文件 data.json 是这样的:

{
"nodes":{"progetto 1":{"color":"red", "shape":"dot", "alpha":1},
"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},
"halfviz":{"color":"#a7af00", "alpha":0, "link":""},
"atlas":{"color":"#a7af00", "alpha":0, "link":""},
"echolalia":{"color":"#a7af00", "alpha":0, "link":""},
"docs":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"reference":{"color":"#922E00", "alpha":0, "link":""},
"introduction":{"color":"#922E00", "alpha":0, "link":""},
"code":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"github":{"color":"orange", "alpha":0, "link":""},
".zip":{"color":"orange", "alpha":0, "link":""},
".tar.gz":{"color":"orange", "alpha":0, "link":""}
},
"edges":{
"progetto 1":{
"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}
},
"demos":{"halfviz":{},
"atlas":{},
"echolalia":{}
},
"docs":{"reference":{},
"introduction":{}
},
"code":{".zip":{},
".tar.gz":{},
"github":{}
}
}
}

最佳答案

因为 JSON 中有语法错误:

SyntaxError: test.json: Unexpected token s

第二行:

"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},

shape 应加引号。

请记住,在 JSON 中,所有键和字符串值都必须用双引号引起来,才能获得有效的 JSON

编辑:我现在感觉自己像个编译器。 :D

因为你有下一个语法错误:

SyntaxError: test.json: Unexpected token .

这两次在以下几行中:

"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}

.8 不是有效的 JSON 值。使用0.8

现在应该就是这样了,你可以开始了。

关于jquery - 为什么程序无法读取文件 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16628527/

相关文章:

javascript - jQuery 函数链接与基于类的条件,可能吗?

php - 如何使用 json_encode 更正 php 中的语法

javascript - arbor.js 自定义每个节点的形状

javascript - Arbor.js 图不稳定,链接到中心节点的节点超过 30 个

javascript - 有没有办法在arbor.js上添加 float 效果

javascript - Jquery 更改部分文本的文本和 css

jquery - 弹出登录和注册表单

javascript - 选择未更改时未触发的焦点

c# - C# 对象到 JSON 的模板化序列化

json - 如何使用 jq 从两个日期/时间值计算持续时间