private JToken toOrderedJToken()
{
var ordered = new JObject();
var jDocument = JToken.FromObject(_document);
List<JToken> toBottom = new List<JToken>();
foreach(var prop in jDocument.Children())
{
var jp = prop as JProperty;
if (jp != null)
{
if (jp.Name.StartsWith("_"))
toBottom.Add(jp);
else
ordered.Add(jp);
}
else
{
ordered.Add(prop);
}
}
foreach(var prop in toBottom)
{
ordered.Add(prop);
}
return ordered;
}
}