使用匿名类型,您可以定义对象层次结构,几乎与使用纯 JSON 一样简单。然后只需使用序列化它Json.Net http://www.newtonsoft.com/json/help/html/SerializeObject.htm:
var obj = new {
name = "flare",
children = new[] {
new { name = "analytics" },
new { name = "animate" },
}
};
var json = JsonConvert.SerializeObject(obj, Formatting.Indented);
对于更复杂的层次结构,您可能需要涉及动态类型。这是你的原始对象:
var obj = new {
name = "flare",
children = new[] {
new {
name = "analytics",
children = new dynamic [] {
new {
name = "cluster",
children = new dynamic [] {
new { name = "AgglomerativeCluster", size = 3938},
new { name = "MergeEdge", size = 743},
}
},
new {
name = "graph",
children = new dynamic [] {
new { name = "BetweennessCentrality", size = 3534},
new { name = "SpanningTree", size = 3416},
}
},
new {
name = "optimization",
children = new dynamic [] {
new { name = "AspectRatioBanker", size = 7074},
}
},
}
},
new {
name = "animate",
children = new dynamic [] {
new { name = "Easing", size = 17010},
new { name = "FunctionSequence", size = 5842},
new {
name = "interpolate",
children = new [] {
new { name = "ArrayInterpolator", size = 1983},
new { name = "RectangleInterpolator", size = 2042}
}
},
new { name = "ISchedulable", size = 1041},
new { name = "Tween", size = 6006},
}
},
}
};
var json = JsonConvert.SerializeObject(obj, Formatting.Indented);
Demo: https://dotnetfiddle.net/u2HIt3 https://dotnetfiddle.net/u2HIt3