// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 #contents JSON/Json-libを使う/JavaからJSONへいろんな変換 ではJavaからJSONへいろいろ変換してみましたが、次に、C#からJSONへ変換してみます。 Javaでやったときとほぼ同様の以下のような親子モデルで、ネストしたオブジェクトが正しく変換されるか、配列やListやSetなどが正しく変換されるか試してみます。 public class Parent { public int id { get; set; } public string name { get; set; } public Child child { get; set; } //public String toString() //{ //return new ToStringBuilder(this). //append("id", getId()).append("name", //getName()).append("child", getChild()).toString(); //} } public class Child { public string name { get; set; } //public String toString() //{ //return new ToStringBuilder(this) //.append("name", getName()).toString(); //} } ***ネストしたオブジェクト [#z717baf3] class Program { static void Main(string[] args) { Child child = new Child { name = "子の名前" }; Parent parent = new Parent { id = 0, name = "親の名前", child = child }; var json = DynamicJson.Serialize(parent); Console.WriteLine(json); } } 結果 {"id":0,"name":"親の名前","child":{"name":"子の名前"}} {"フィールド名":value}というJSON形式に変換されました。Childクラスであるchildフィールドも、ちゃんとネストして変換されていますね。 ***List [#t58effec] Listを追加しました。 public class Parent { public int id { get; set; } public string name { get; set; } public List<Child> children { get; set; } //public Child child { get; set; } } これでやってみると、、 class Program { static void Main(string[] args) { var children = new List<Child>(); children.Add(new Child { name = "子の名前" }); children.Add(new Child { name = "子の名前" }); Parent parent = new Parent { id = 0, name = "親の名前", children = children }; var json = DynamicJson.Serialize(parent); Console.WriteLine(json); } } 結果 {"id":0,"name":"親の名前","children":[{"name":"子の名前"},{"name":"子の名前"}]} childrenフィールドは "children":[{"name":"子の名前"},{"name":"子の名前"}] というように配列表現に変換されていますね。まあ想定通りですね。 ***配列 [#g7464178] Listを配列にしました。 public class Parent { public int id { get; set; } public string name { get; set; } public Child[] children { get; set; } //public Child child { get; set; } //public String toString() //{ //return new ToStringBuilder(this). //append("id", getId()).append("name", //getName()).append("child", getChild()).toString(); //} } これでやってみると、 class Program { static void Main(string[] args) { Child[] children = new Child[] { new Child { name = "子の名前" }, new Child { name = "子の名前" } }; Parent parent = new Parent { id = 0, name = "親の名前", children = children }; var json = DynamicJson.Serialize(parent); Console.WriteLine(json); // {"id":0,"name":"親の名前","child":{"name":"子の名前"}} // {"child":{"name":"子の名前"},"name":"親の名前","id":0} } } 結果 {"id":0,"name":"親の名前","children":[{"name":"子の名前"},{"name":"子の名前"}]} 配列childrenは "children":[{"name":"子の名前"},{"name":"子の名前"}] となり、JSONの配列になっていますね。 ---- この記事は #vote(おもしろかった,そうでもない) #comment #topicpath SIZE(10){現在のアクセス:&counter;}