- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#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;}