###最初に
C#の質問ですがUnityの機能を用いていることを断っておきます。
C#
1namespace UnityEngine { 2 public class JsonUtility { 3 public static T FromJson (string json); 4 } 5}
JSONのテキストからオブジェクトを作成するメソッドを用いています。
したいこと
入れ子関係になっているクラスが持つ共通の変数名のデータを、指定した文字列で取得したいです。
###現状
C#
1public class Hoge{ 2 3 public Data d; 4 5 public static void Main(){ 6 string text = "{" + 7 "\"m1\":{ \"data\":\"A\" }," + 8 "\"m2\":{ \"data\":\"B\" }" + 9 "}"; 10 d = UnityEngine.JsonUtility.FromJson<Data>(text); //JSONの読み込み 11 12 Console.Write(d.m1.data); // 出力:A 13 Console.Write(d.m2.data); // 出力:B 14 } 15 16 public class Data{ 17 public Member1 m1; 18 public Member2 m2; 19 public class Member1{ 20 public string data; 21 } 22 public class Member2{ 23 public string data; 24 } 25 } 26}
###こうしたい
d.m1.data
,d.m2.data
とそれぞれアクセスするのではなく、例えば
C#
1public class Hoge{ 2 3 public Data d; 4 5 public static void Main(){ 6 string text = "省略"; 7 d = UnityEngine.JsonUtility.FromJson<Data>(text); 8 9 for (int i=1; i<=2; i++){ 10 string res = d.("m"+i).data; //こんな感じで動かしたい 11 Console.Write(res); 12 } 13 } 14 15 public class Data{ 16 //省略 17 } 18}
といったように、文字列で指定したクラスのメンバ変数を得る方法はないでしょうか。
ご教授お願い致します。
###補足
Unityで動かすコードですがほぼC#の質問であるためUnityのテンプレから外した書き方をしています。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/27 15:32