プログラミング演習Ⅲ(2023)

【課題9-04】JSONファイルの出力

プロジェクトタイプC#コンソールアプリ※
プロジェクト名Prac_9_04
ソリューション名PET9
ターゲットフレームワーク.NET 6.0 (長期的なサポート)
最上位レベルのステートメントを使用しない使用しない(チェックオン)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

【課題9-03】で定義したクラスIntroductionInfoのインスタンスを JSON形式のテキストファイルとして出力するプログラムを作成せよ.

後述の_にはあらかじめIntroductionInfoの変数introが 宣言されている.この変数の内容をJSON形式のテキストファイルとして出力せよ. 出力ファイル名はintoroduction.jsonとする.

注意
  • この設問を解くには先に以下の課題を完了する必要がある.
  • 後述の空欄は前提課題の回答と 全く同じ にすること(変えてはならない).
  • この設問ではコンソール(黒画面)への表示処理を作る必要はない(ファイルの出力のみ).
  • メモ帳などで手打ちでテキストファイルを作るという設問ではないので注意せよ.

プログラムの概形は_のようにすること(必ず以下をコピーしProgram.cs全体を上書きすること).

テンプレートコード
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace Prac_9_04
{
    /********************************/
    /*                              */
    /*            空欄1             */
    /* IntroductionInfoクラスの定義 */
    /*     (【課題9-03】と同じ)     */
    /*                              */
    /********************************/

    internal class Program
    {
        static void Main(string[] args)
        {        
            // ファイルに出力する対象の変数(変更してはならない)
            var intro = new IntroductionInfo() 
            {
                StudentID = "HI022099",
                Name = "医療太郎",
                Motto = "一攫千金",
                Birthday = new DateTime(2002, 10, 2)
            };
        
            /**************************************************/
            /*                                                */
            /*                    空欄2                       */
            /*             ↑の変数 intro の内容を            */
            /*              JSON形式で出力する.              */
            /*                                                */
            /**************************************************/
            
        }// end of Main()
    }// end of class Program
}// end of namespace

正しく実装できた場合,実行結果のテキストファイルは_のようになる.

{
  "StudentID": "HI022099",
  "Name": "医療太郎",
  "Motto": "一攫千金",
  "Birthday": "2002-10-02T00:00:00"
}
実行結果

ヒント

補足:System.Text.Jsonを用いて単一のオブジェクトをファイルに書き込む/読み込む方法
  • 授業資料では,JSON形式でC#のオブジェクトをファイルに書き込む/読み込む方法の例として,配列やリストを読み書きする例を紹介したが,System.Text.Jsonライブラリでは書き込む/読み込む対象がリストになっている必要ははないので誤解しないように注意せよ.
    • _System.Text.Jsonライブラリの使用方法を再掲する.
    • _には任意オブジェクト読み込むオブジェクトの型などの表記があるが,これらのオブジェクトの方が配列やリスト(List<T>)でなければならないとはどこにも書かれていないことが分かるだろうか.
    • したがって任意オブジェクト読み込むオブジェクトの型の部分には,どのような型およびそのオブジェクトでも置くことができる.
    • 今回の場合は【課題9-03】で定義したIntroductionInfoクラスなのだから,任意オブジェクトの部分にはIntroductionInfoクラスのオブジェクト(変数など),読み込むオブジェクトの型の部分にはIntroductionInfoクラスそのものを指定することができる.
System.Text.Jsonによる任意のオブジェクトの書き出し/読み込み
// 書き出し
JsonSerializer.Serialize(任意オブジェクト, オプション(省略可))

// 読み込み
JsonSerializer.Deserialize<読み込むオブジェクトの型>(JSON形式のテキストを含む文字列型の定数・変数・式)
補足:System.Text.Jsonを用いて単一のオブジェクトをファイルに書き込む/読み込む方法 : 閉じる
Last updated on 2023-12-11
Published on 2023-12-11

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.