APIからJsonファイルの取得はできており
ファイルではなく、fetch(url) で指定の url に要求をかけると応答として JSON 文字列が返ってくるのですよね。サンプルでいいのでその JSON 文字列を質問欄に追記してください。
【追記】
普通に、昔ながらのやり方で state を使ってはいかがですか?
以下は Visual Studio 2022 のテンプレートで作った React + Web API アプリの実行結果ですが、これがどのように state を使っているか説明します。
コードは以下の通りです。
import React, { Component } from 'react';
export class FetchData extends Component {
static displayName = FetchData.name;
constructor(props) {
super(props);
this.state = { forecasts: [], loading: true };
}
componentDidMount() {
this.populateWeatherData();
}
static renderForecastsTable(forecasts) {
return (
<table className="table table-striped" aria-labelledby="tableLabel">
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
{forecasts.map(forecast =>
<tr key={forecast.date}>
<td>{forecast.date}</td>
<td>{forecast.temperatureC}</td>
<td>{forecast.temperatureF}</td>
<td>{forecast.summary}</td>
</tr>
)}
</tbody>
</table>
);
}
render() {
let contents = this.state.loading
? <p><em>Loading...</em></p>
: FetchData.renderForecastsTable(this.state.forecasts);
return (
<div>
<h1 id="tableLabel">Weather forecast</h1>
<p>This component demonstrates fetching data from the server.</p>
{contents}
</div>
);
}
async populateWeatherData() {
const response = await fetch('weatherforecast');
const data = await response.json();
this.setState({ forecasts: data, loading: false });
}
}
コードの下の方にある fetch('weatherforecast') で Web API を呼び出すと、以下の JSON 文字列が返ってきます。
[
{"date":"2023-11-15","temperatureC":14,"temperatureF":57,"summary":"Bracing"},
{"date":"2023-11-16","temperatureC":21,"temperatureF":69,"summary":"Warm"},
{"date":"2023-11-17","temperatureC":47,"temperatureF":116,"summary":"Warm"},
{"date":"2023-11-18","temperatureC":0,"temperatureF":32,"summary":"Hot"},
{"date":"2023-11-19","temperatureC":34,"temperatureF":93,"summary":"Hot"}
]
その下の const data = await response.json();
で data には JSON 文字列をデシリアライズしたJavaScript オブジェクト(連想配列)が代入されます。
それを setState で state に設定すると自動的に再度 render が動いて上の画像のように結果が表示されます。