static XElement AddSampleJson(XElement content, string title, string label)
{
StringBuilder sample = new StringBuilder();
using (MemoryStream stream = new MemoryStream())
{
using (XmlJsonWriter writer = new XmlJsonWriter())
{
writer.SetOutput(stream, Encoding.Unicode, false);
content.WriteTo(writer);
}
stream.Position = 0;
sample.Append(new StreamReader(stream, Encoding.Unicode).ReadToEnd());
}
int depth = 0;
bool inString = false;
for (int i = 0; i < sample.Length; ++i)
{
if (sample[i] == '"')
{
inString = !inString;
}
else if (sample[i] == '{')
{
sample.Insert(i + 1, "\n" + new String('\t', ++depth));
i += depth + 1;
}
else if (sample[i] == ',' && !inString)
{
sample.Insert(i + 1, "\n" + new String('\t', depth));
}
else if (sample[i] == '}' && depth > 0)
{
sample.Insert(i, "\n" + new String('\t', --depth));
i += depth + 1;
}
}
return AddSample(sample.ToString(), title, label);
}