以下是我试图解析的JSON:
{[{"name":"Technology"},{"name":"Engineering"},{"name":"Business"}]}
我收到以下错误:
Unexpected token [ in JSON at position 1
at JSON.parse (<anonymous>)
at fromJson
我从服务获取数据并使用以下内容将其保存到控制器范围内:
vm = this;
vm.sectorList = response.data;
我的HTML:
<div ng-repeat="sector in ctrl.sectorList">
{{sector.name}}
</div>
答案 0 :(得分:11)
JSON无效,因此您会收到错误。您错过了使用JSON数组值的密钥。例如(键&#34;任何&#34;添加)将起作用:
{"anything": [{"name":"Technology"},{"name":"Engineering"},{"name":"Business"}]}
答案 1 :(得分:6)
如果响应是数组,则不应将其括在大括号{}
中。这将是有效的JSON:
[{"name":"Technology"}, {"name":"Engineering"}, {"name":"Business"}]
当一个字符串作为输入参数时,你也试图在一个对象上使用JSON.parse
。如果要将对象转换为JSON字符串,则应使用JSON.stringify
。
答案 2 :(得分:5)
您的JSON
无效,您可以验证JSON
Here
应该是:
[{
"name": "Technology"
}, {
"name": "Engineering"
}, {
"name": "Business"
}]
答案 3 :(得分:3)
你的钥匙丢失了。
{"YourKEY": [{"name":"Technology"},{"name":"Engineering"},{"name":"Business"}]}
如果没有密钥,则无法访问数组对象。
答案 4 :(得分:3)
您需要将数组分配给对象的属性。不能在没有属性的情况下在对象内部分配数组
{
"items":[
{
"name":"Technology"
},
{
"name":"Engineering"
},
{
"name":"Business"
}
]
}
在ng-repeat中应该改变如下
<div ng-repeat="sector in ctrl.sectorList.items">
{{sector.name}}
</div>
答案 5 :(得分:3)
您应该在JSON中的[]
之前删除大括号:
[{"name":"Technology"},{"name":"Engineering"},{"name":"Business"}]