错误:未捕获(在承诺中):SyntaxError:意外的令牌<在JSON中

时间:2017-08-31 20:23:59

标签: javascript json angular parsing typescript

解析我的Json文件时遇到错误,该文件在https://jsonlint.com/

上有效
@Injectable()
export class LightParserService{
  ITEMS_URL = "./lights.json";
  constructor(private http: Http) {
  }

  getItems(): Promise<Light[]> {
    return this.http.get(this.ITEMS_URL).toPromise()
    .then(resp  => {
        return resp.json() as Light[];
      });
    }
}

当我在另一个组件中使用我的函数时:

lights : Light[] = [];
getLights(): void{
      this.lightService.getItems().then(light => this.lights = light);
    }

在我的网站上我得到了:错误:未捕获(在承诺中):SyntaxError:意外的令牌&lt;在位置0的JSON中

有谁知道如何解决这个问题?我的JSON文件是有效的,我的Light对象包含有效字段,所以我不明白。

1 个答案:

答案 0 :(得分:1)

DATETIME可能返回HTML而不是json,所以你的resp.json()失败了。您可以在./lights.json行之前添加console.log(resp.text()),这样您就可以看到原始响应(或者您只需在开发工具网络标签中将其添加到其中)