C++ で JSON ファイルを読み取る
このチュートリアルでは、JSON ファイルを作成し、コンパイラでそのファイルからデータを読み取るという概念について説明します。 C++ 言語と jsoncpp
ライブラリを使用します。
この記事では、Linux オペレーティング システムを使用して上記のタスクを実行します。 ただし、C++ コンパイラの Windows オペレーティング システムでも実行できます。
JSON ファイルを読み取るために必要なライブラリをインストールする必要があります。 仮想マシンに Linux をインストールし、プログラムを実行するために必要なライブラリをインストールする方法を説明します。
JSON ファイルを読み取るために、コード スニペットに次のライブラリを含める必要があります。
#include <jsoncpp/json/json.h>
#include <jsoncpp/json/value.h> //This library is used for interacting with JSON file
#include <fstream> // This library is used for reading and writing data to the files
#include <iostream> // This library defines standard input/ output objects
#include <string> // This library is used to store text
JSON ファイル
JSONはJavaScript Object Notation
の略です。 JSON は、データの保存と交換に使用されます。
JavaScript とは関係ありません。 JSON は、クライアントとサーバー コンピューター間でデータを送受信するために使用されるデータ形式です。
JSON にはさまざまなオブジェクトがあります。 keys
とその values
のペアは中括弧で囲みます。
JSON は軽量のデータ形式です。 JSON は comments
と namespaces
をサポートしていません。
JSONのフォーマットは以下です。
var person={"firstname":"Ali","Lastname":"Ahmad"};
JSON では 6つのデータ型を使用できます。
- ストリング
- 番号
- ブール値
- 配列
- オブジェクト
- ヌル
{
"name": "ali",
"age" : 30,
"married": false,
"kids" : ,
"hobbies": ["music","sports"],
"vehicle":{
{"type": "car", "vname": "swift"},
{"type": "bike", "vname": "honda"}
}
};
1 番目は String
、2 番目は Number
、3 番目は Boolean
、4 番目は Null
、5 番目は Array
、6 番目は Object
です。 これは人間が読める形式です。
JSON ファイルからデータを読み取る
まず、次の手順に従って、Windows に Ubuntu をダウンロードしてインストールする必要があります。 Virtual Box で Ubuntu をマシンにインストールする手順.
Ubuntuをインストールすると、この画面が表示されます。
9つのドットがあるアイコンをクリックして端末を検索する必要があります。 検索バーが表示されるので、その画面でターミナル
と入力する必要があります。
次に、このターミナルを取得したら、まず次のコマンドを入力してコンパイラをインストールする必要があります。
sudo apt install gcc
この後、パッケージをインストールするには、ログイン パスワードを入力し、Yes の場合は Y
を指定する必要があります。
このインストールの後、dev
に JSON 用のライブラリをインストールする必要があります。
sudo apt install libjson-cpp-dev
この JSON ライブラリをインストールしたら、Text Editor
を開いて、JSON ファイルに次のコードを書き込む必要があります。
{
"Name":"Alice",
"Dob" : "17th october 2022",
"College" : "Kips"
}
次のコード スニペットは、C++ で JSON ファイルを読み取る方法を説明します。
#include <jsoncpp/json/json.h>
#include <jsoncpp/json/value.h>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
// Using fstream to get the file pointer in file
ifstream file("file.json");
Json::Value actualJson;
Json::Reader reader;
// Using the reader, we are parsing the json file
reader.parse(file, actualJson);
// The actual json has the json data
cout << "Total json data:\n" << actualJson << endl;
// accessing individual parameters from the file
cout << "Name:" << actualJson["Name"] << endl;
cout << "Dob:" << actualJson["Dob"] << endl;
cout << "College:" << actualJson["College"] << endl;
return 0;
}
まず、このコードには、入出力関数のライブラリ、ファイルからのデータの読み取り、および文字の読み取りが含まれています。 JSON.h
は、すべての関数にアクセスするために必要なヘッダーです。
次に、fstream
を使用して、ファイル内のファイル ポインターを取得します。 JSON ファイルを開いた後、関数 Reader
を使用して、ファイルの内容を読み取るためにファイルを解析しました。
次に、C++ の出力関数を使用して、JSON ファイル内のすべてのデータを画面に表示します。 次に、JSON ファイルから個々のパラメーターの値にアクセスし、画面に表示しました。
上記のコードは、JSON ファイルからデータを読み取るために使用されます。 上記のコードを記述したら、コマンドを使用してコンパイルおよび実行する必要があります。
g++ test.cpp -ljsoncpp
./a.out
出力: