gpt4 book ai didi

javascript - 如何在 Angular 8 中使用来自 HTML 输入的 JSON 文件?

转载 作者:行者123 更新时间:2023-12-02 22:09:14 25 4
gpt4 key购买 nike

在我当前的 Angular 8 项目中,我有两个 JSON 文件,它们应该连接到一个 JSON 数组。然后应导出新文件。

在谷歌搜索了很长时间后,我没有找到如何使用这两个 JSON 文件的解决方案,我通过两个 HTML 输入调用这两个文件,这样我就可以将 Angular 组件中的两个文件组合起来形成一个 JSON 数组来自两个 JSON 文件的输入。

我当前的代码:

JsonConverterComponent.html

<div class="form-group">
<label for="Json1">Json 1</label>
<input [(ngModel)]="json1" type="file" id="Json1" required>
</div>
<div class="form-group">
<label for="Json2">Json 2</label>
<input [(ngModel)]="json2" type="file" id="Json2" required>
</div>
<button [buttonLabel]="buttonNameJson" [disableCheck]="!json1 || !json2" (click)="combineJSON()"></button>

JsonConverterComponent.TS

export class JsonConverterComponent implements OnInit {

constructor(private http: HttpClient) { }

ngOnInit() {
}

buttonNameJson = "Combine JSON";
json1: File;
json2: File;
test: File;

one = this.json1;
two = this.json2;

public combineJSON() {
this.test = this.one;
console.log(this.test);
}
}

如果我只想调用两个导入的 JSON 文件之一的内容,我总是会收到错误“未定义”。

我必须做什么才能在 JsonConverterComponent.ts 中使用单独的 JSON?

最佳答案

ngModel 指令不能用于 file 类型的 input,您必须对 change 事件如下:

<input (change)="onFileChange($event)" type="file" id="Json1" required>

<input (change)="onFileChange($event)" type="file" id="Json2" required>

然后在 TypeScript 文件中:

onFileChange(event){
const fileToLoad = event.target.files[0];
const fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent){
const textFromFileLoaded = fileLoadedEvent.target.result;
const json = JSON.parse(textFromFileLoaded);
console.log(json);
};
fileReader.readAsText(fileToLoad, "UTF-8");
}

关于javascript - 如何在 Angular 8 中使用来自 HTML 输入的 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59612312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com