Angular获取上传的json的值

时间:2019-06-14 09:08:13

标签: json angular

我创建了一个Webapp,用户可以在其中上传json。之后,它应该打印出json的内容。不幸的是,我总是收到一个空数组。

这是我的JSON:

"06" : {
    "fallbackLabel" : "Adelholzener Gastro Classic mit Gas",
    "price"         : "0.30",
    "name"          : "0,25l"
},
"07" : {
    "fallbackLabel" : "Adelholzener Gastro Classic ohne Kohlensäure",
    "price"         : "0.30",
    "name"          : "0,25l"
}

这是我的代码:

onFileSelected(event){
   this.selectedFile = event.target.files[0];
   this.http.get(this.selectedFile).subscribe(data => {
     console.log(this.selectedFile.text());
   })  
}

1 个答案:

答案 0 :(得分:1)

HttpClient仅适用于url:您不能将文件传递给get方法(https://angular.io/api/common/http/HttpClient#get)。

您必须使用FileReader:

onFileChanged(event) {
  this.selectedFile = event.target.files[0];
  const fileReader = new FileReader();
  fileReader.readAsText(this.selectedFile, "UTF-8");
  fileReader.onload = () => {
   console.log(JSON.parse(fileReader.result));
  }
}