using Newtonsoft.Json.Linq;
public static void Main()
""Hair-color"": ""blue"",
""Eye-color"": ""brown"",
""hair-color"": ""brown"",
""Hair-color"": ""blue"",
""Eye-color"": ""brown"",
""hair-color"": ""brown"",
JObject obj = JObject.Parse(json);
JObject newObj = new JObject(
new JProperty("name", obj["name"]),
new JProperty("company", new JArray(
.Select(jp => new JObject(
new JProperty((string)jp.Value["type"], jp.Name),
new JProperty("attributes", jp.Value["attributes"])
json = newObj.ToString();