React アプリケーションで JSON ファイルを読み込む 3 つの方法
React で JSON ファイルをインポートする方法
JSON ファイルを用意する
まず、インポートしたい JSON ファイルを用意する必要があります。 JSON ファイルは、テキストエディタで作成することができます。 JSON ファイルの例は以下の通りです。
[
{
"id": 1,
"name": "John Doe",
"age": 30
},
{
"id": 2,
"name": "Jane Doe",
"age": 25
}
]
JSON ファイルを用意したら、React コンポーネントでインポートすることができます。 JSON ファイルをインポートするには、import
キーワードを使用します。
import data from './data.json';
このコードは、data.json
ファイルからデータをインポートし、data
という変数に格納します。
JSON データをインポートしたら、それをアプリケーションで表示することができます。 JSON データは、JavaScript オブジェクトとして扱うことができます。
const users = data.map(user => (
<div key={user.id}>
{user.name} ({user.age})
</div>
));
このコードは、data
配列の各要素を user
変数に代入し、user
変数に基づいて HTML 要素を生成します。 生成された HTML 要素は、users
変数に格納されます。
HTML 要素をレンダリングする
最後に、users
変数に格納された HTML 要素をレンダリングする必要があります。
return (
<div>
{users}
</div>
);
このコードは、users
変数に格納された HTML 要素を DOM にレンダリングします。
React で JSON ファイルをインポートするには、以下の手順が必要です。
- JSON データを使用する
これらの手順に従うことで、React アプリケーションで JSON データを表示することができます。
サンプルコード:React で JSON ファイルをインポート
import React, { useState, useEffect } from 'react';
function App() {
const [data, setData] = useState([]);
useEffect(() => {
fetch('data.json')
.then(response => response.json())
.then(json => setData(json));
}, []);
if (!data.length) {
return <div>Loading...</div>;
}
return (
<table>
<thead>
<tr>
<th>ID</th>
<th>名前</th>
<th>年齢</th>
</tr>
</thead>
<tbody>
{data.map(user => (
<tr key={user.id}>
<td>{user.id}</td>
<td>{user.name}</td>
<td>{user.age}</td>
</tr>
))}
</tbody>
</table>
);
}
export default App;
このコードは以下の動作をします。
useState
フックを使用して、data
という状態変数を初期化します。data
変数は、JSON データを格納するために使用されます。useEffect
フックを使用して、data.json
ファイルをフェッチします。 フェッチが成功すると、JSON データはdata
変数に格納されます。data
変数が空の場合、Loading...
というメッセージが表示されます。data
変数が空でない場合、テーブルが表示されます。 テーブルには、data
配列の各要素に基づいて生成された行が含まれます。
このコードを編集して、独自の JSON ファイルとデータを表示することができます。
注:
- このコードは、
react
とreact-dom
パッケージが必要です。 - JSON ファイルは、同じディレクトリにある必要があります。
React で JSON ファイルをインポートするその他の方法
require
キーワードを使用して、JSON ファイルを直接インポートすることができます。
const data = require('./data.json');
Dynamic Import
を使用して、非同期的に JSON ファイルをインポートすることができます。
(async () => {
const data = await import('./data.json');
console.log(data);
})();
webpack
または parcel
などのビルドツールを使用すると、JSON ファイルをバンドルして、JavaScript ファイルに含めることができます。
CDN から JSON ファイルをロードすることもできます。
const url = 'https://jsonplaceholder.typicode.com/todos/1';
fetch(url)
.then(response => response.json())
.then(json => console.log(json));
このコードは、https://jsonplaceholder.typicode.com/todos/1
から JSON データをフェッチし、コンソールにログ出力します。
- シンプルなプロジェクトの場合は、
require
キーワードまたはimport
キーワードを使用するのが最も簡単です。 - 非同期的に JSON ファイルをインポートする必要がある場合は、
Dynamic Import
を使用する必要があります。 - プロジェクトで
webpack
またはparcel
を使用している場合は、これらのツールを使用して JSON ファイルをバンドルすることをお勧めします。 - CDN 上に公開されている JSON ファイルを使用する場合は、CDN から直接ロードするのが最も簡単です。
javascript json reactjs