Запись поля запроса JSON в файл Angular - PullRequest
0 голосов
/ 09 июля 2020

Я пишу приложение Angular, которое берет данные из API в формате JSON и записывает определенные поля c из результата JSON в файл. Например, если результат запроса -

[{"id":1,"name":"Banana"},{"id":2,"name":"Apple"}, {"id":3,"name":"Orange"},{"id":4,"name":"Kiwi"},{"id":5,"name":"Strawberry"},{"id":6,"name":"Blueberry"},{"id":7,"name":"Tomato"}]

, и я хочу поместить только поле имени в текстовый файл, он будет выглядеть так:

Banana

Apple

Orange

Kiwi

Strawberry

Blueberry

Tomato

Как мне это сделать?

Я понимаю, как запросить API и записать весь запрос в текстовый файл: в моем файле TypeScript:

this.http.get(this.url, httpOptions).subscribe((response) => {
      this.response = response;
      const blob = new Blob([JSON.stringify(this.response)], { type: 'application/json' });
      this.fileURL = this.sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob))
    });

и в моем HTML файле:

<a [href]="fileURL" download="name.txt">Download File</a>

Но я застрял на фильтрации данных и успешной записи их в файл. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Фильтр массива

var names = [{"id":1,"name":"Banana"},{"id":2,"name":"Apple"}, {"id":3,"name":"Orange"},{"id":4,"name":"Kiwi"},{"id":5,"name":"Strawberry"},{"id":6,"name":"Blueberry"},{"id":7,"name":"Tomato"}].map(i => i.name);

console.log(names);
1 голос
/ 09 июля 2020

let result = [{ "id": 1, "name": "Banana" }, { "id": 2, "name": "Apple" }, { "id": 3, "name": "Orange" }, { "id": 4, "name": "Kiwi" }, { "id": 5, "name": "Strawberry" }, { "id": 6, "name": "Blueberry" }, { "id": 7, "name": "Tomato" }];
let textToPut="";
result.forEach(elt => {
    textToPut+= elt.name+"\n"; // add element name and back to line 
});
console.log(textToPut);
// Then put textToPut in your file
...