I have a JSON string like this:
{
"name": "NameOfObject",
"itemsToSort": [
{
"name": "ValueB",
"someProperty": "SomeValue"
},
{
"name": "ValueA",
"someProperty": "SomeValue"
},
{
"name": "ValueC",
"someProperty": "SomeValue"
}
],
"someThing": [
{
"name": "ThingB",
"anotherProperty": "SomeValue"
},
{
"name": "ThingA",
" anotherProperty": "SomeValue "
}
]
}
I need to sort only the itemsToSort element alphabetically in C#, so it looks like this:
{
"name": "NameOfObject",
"itemsToSort": [
{
"name": "ValueA",
"someProperty": "SomeValue"
},
{
"name": "ValueB",
"someProperty": "SomeValue"
},
{
"name": "ValueC",
"someProperty": "SomeValue"
}
],
"someThing": [
{
"name": "ThingB",
"anotherProperty": "SomeValue"
},
{
"name": "ThingA",
" anotherProperty": "SomeValue "
}
]
}
I found code like this, but it sorts at top level, not itemsToSort
var jObj = (JObject)JsonConvert.DeserializeObject(json);
var props = jObj.Properties().ToList();
foreach (var prop in props)
{
prop.Remove();
}
foreach (var prop in props.OrderBy(p => p.Name))
{
jObj.Add(prop);
}
string result = jObj.ToString(Formatting.Indented);
How can I sort only the itemsToSort element?