Du kannst das Objekt abflachen und redundante Einträge mit einem Prefix indexieren. Hier ist eine rekursive Funktion um ein JSON Objekt in eine flache Hierarchie umzuwandeln.
void FlattenJson(JToken token, string prefix)
{
if (token is JObject obj)
{
foreach (var prop in obj.Properties())
{
FlattenJson(prop.Value, prefix + prop.Name + ".");
}
}
else if (token is JArray array)
{
int index = 0;
foreach (var item in array)
{
FlattenJson(item, $"{prefix}[{index}].");
index++;
}
}
else
{
// Einfaches Key-Value-Paar hinzufügen
dataGridView1.Rows.Add(prefix.TrimEnd('.'), token.ToString());
}
}
So kannst du das JSON direkt an die Funktion übergeben, die die Struktur automatisch abflacht..
JObject data = JObject.Parse(output.Trim());
dataGridView1.Rows.Clear();
FlattenJson(data, "");
Aus einem Array wie
"InstalledSoftware": [
{ "Name": "Chrome", "Version": "120.1" },
{ "Name": "Notepad++", "Version": "8.5" }
]
würde dadurch
InstalledSoftware[0].Name Chrome
InstalledSoftware[0].Version 120.1
InstalledSoftware[1].Name Notepad++
InstalledSoftware[1].Version 8.5