CSharp · Console
// https://stackoverflow.com/questions/60089463/query-or-deserialize-json-with-dynamic-keys-using-system-text-json
using System;
using System.Collections.Generic;
using System.Text.Json;
public class Program
{
public static void Main()
{
var json = @"{
""key1"": ""Hello"",
""key2"": {
""items"": {
""123"": {
""pageid"": 123,
""name"": ""data""
},
""234"": {
""pageid"": 234,
""name"": ""Something""
}
}
}
}";
var data = JsonSerializer.Deserialize<Root>(json);
Console.WriteLine("pageid: " + data.key2.items["123"].pageid);
Console.WriteLine("name: " + data.key2.items["123"].name);
Console.WriteLine("pageid: " + data.key2.items["234"].pageid);
Console.WriteLine("name: " + data.key2.items["234"].name);
foreach (var key in data.key2.items.Keys) {
Console.WriteLine($"{key} {data.key2.items[key].name}"); // {items["key"].name}");
}
}
}
public class ItemProps
{
public int pageid { get; set; }
public string name { get; set; }
}
public class Item
{
public Dictionary<string, ItemProps> items { get; set; }
}
public class Root
{
public string key1 { get; set; }
public Item key2 { get; set; }
}