2012-02-29 78 views
0

嗨,我是比较新的JS和不断收到错误missing] after element list当我尝试运行以下命令:JSON埃维尔()错误:缺少]之后元素列表

呼吁test.JSON一个JSON文件:

{ 
"156644": { 
    name: "name1", 
    "street": "street1", 
    "city": "city1" 
}, 
"68656": { 
    "name": "name2 ", 
    "street": "street2", 
    "city": "city1" 
}, 
"388655": { 
    "name": "name3", 
    "street": "street3", 
    "city": "city1" 
}, 
"4564": { 
    "name": "name4", 
    "street": "street4", 
    "city": "city1" 
}, 
"6333": { 
    "name": "name5", 
    "street": "street5", 
    "city": "city1" 
} 
} 

而且一些JavaScript:

var myObject = eval("(" + $.getJSON("test.json") + ")"); 

我怎样才能解决这个问题?

+2

$ .getJSON()返回它已经找到的JSON,你不需要eval()它。 – 2012-02-29 22:15:53

+0

您遗漏了您的一个属性名称,名字为:“name1” – Dampsquid 2012-02-29 22:18:07

+0

我怀疑test.json是不可访问的请提供一个jsFiddle和一个附件以及该文件。子对象 – mozillanerd 2012-02-29 22:35:00

回答

1

getJSON功能:

  1. 将解析JSON成JavaScript对象为您服务。请勿触摸eval
  2. 是异步的,通过回调没有返回值

所以处理数据:

$.getJSON("test.json", handleData); 

function handleData(data) { 
    console.log(data); 
} 

你也有你的JSON数据语法错误。使用http://jsonlint.com/来查明它。