2024年3月
        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    
無料ブログはココログ

 

« 読了:召喚士マリア 6 堕天使に安らぎを、真の名に微笑みを。 | トップページ | 今日はネタを切らしてまして・・・ »

2008年9月29日 (月)

GetプロパティをJSON形式で保存してみる

FLVからMP3をブッコ抜くアプリを作っていたら、設定の保存をJSONでやろうと思いついた。そしたら、いつの間にか読み込み処理に力を入れている自分がいた。

以下のC#のプログラムは、saveメソッド実行で、クラスからGetプロパティ(以下の場合は、parameterFileNameとversion)を検索して、そのプロパティ名と値を取得する。それをJSON形式で出力するですよ。


public class classParameter
{
  public string parameterFileName
  {
    get { return "sachimitama.ini"; }
  }
  public string version
  {
    get { return "00-00-000"; }
  }
  public void save(string file)
  {
    bool isFirst = true;
    FileStream fs = new FileStream(file, FileMode.Create, FileAccess.Write);
    StreamWriter sw = new StreamWriter(fs);
    Type t = typeof(classParameter);
    PropertyInfo[] members = t.GetProperties();
    sw.Write("{");
    foreach (MemberInfo m in members)
    {
      if (!isFirst)
      {
        sw.WriteLine(",");
      }
      else
      {
        isFirst = false;
      }
      sw.Write("\"" + m.Name + "\":\"" + (string)t.InvokeMember(m.Name, BindingFlags.GetProperty, null, this, null).ToString() + "\"");
    }
    sw.WriteLine("}");
    sw.Close();
    fs.Close();
  }
}

結果は以下のようになるはず。(上記のプログラムでは動かしていません。抜き出す前のプログラムでは一応動作しているのは確認しています)

{"parameterFileName":"sachimitama.ini","version":"00-00-000"}

« 読了:召喚士マリア 6 堕天使に安らぎを、真の名に微笑みを。 | トップページ | 今日はネタを切らしてまして・・・ »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: GetプロパティをJSON形式で保存してみる:

» ゲームプログラマー [ゲーム業界の転職]
ゲーム業界に転職したい人は、ゲーム業界に入って何をやりたいか考えましょう。おそらく一番人が必要なのは、ゲームプログラマだと思います。デザイナやディレクター、3Dクリエイターなどなどあります。その中でもゲームプログラマが私は一番やりたいです。ただ、デザ... [続きを読む]

« 読了:召喚士マリア 6 堕天使に安らぎを、真の名に微笑みを。 | トップページ | 今日はネタを切らしてまして・・・ »