C言語でcjsonを使ってJSONファイルを解析する方法は何ですか?
cjsonライブラリを使用してJSONファイルを解析する手順は次の通りです:
- cjsonライブラリを公式サイト(https://github.com/DaveGamble/cJSON)からダウンロードし、それをあなたのC言語プロジェクトに追加してください。
- cjsonのヘッダーファイルを含める。
- “cJSON.h”をインクルードします。
- JSONファイルのコンテンツを読み込む:
- // JSONファイルを開く
FILE *file = fopen(“example.json”, “r”);
if (file == NULL) {
// ファイルの開けなかった場合の処理
return;
}// JSONファイルのサイズを取得
fseek(file, 0, SEEK_END);
long fileSize = ftell(file);
fseek(file, 0, SEEK_SET);// メモリを割り当ててJSON内容を読み込む
char *jsonString = (char *)malloc(fileSize + 1);
fread(jsonString, 1, fileSize, file);
jsonString[fileSize] = ‘\0’;// ファイルを閉じる
fclose(file); - JSONのコンテンツを解析する。
- // JSON文字列の解析
cJSON *json = cJSON_Parse(jsonString);
if (json == NULL) {
// 解析失敗時の処理
free(jsonString);
return;
}// JSONオブジェクトから必要なデータを取得
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, “name”);
if (cJSON_IsString(name) && (name->valuestring != NULL)) {
printf(“名前: %s\n”, name->valuestring);
}cJSON *age = cJSON_GetObjectItemCaseSensitive(json, “age”);
if (cJSON_IsNumber(age) && (age->valuedouble != 0)) {
printf(“年齢: %.1f\n”, age->valuedouble);
}// リソースの解放
cJSON_Delete(json);
free(jsonString); - 最後に、リソースを開放することを忘れないでください。
- jsonを削除してください。
free(jsonString);
cjsonライブラリを使用してJSONファイルを解析する基本的な手順が記載されています。必要に応じてJSONオブジェクト内のデータをさらに処理することができます。