この状況は、次のように定義されDictionary<string, User>
たクラスがあると仮定して、 にデシリアライズすることで処理できます。User
public class User
{
public string uid { get; set; }
public string name { get; set; }
public string mail { get; set; }
}
ここにデモがあります:
class Program
{
static void Main(string[] args)
{
string json = @"
{
""166"": {
""uid"": ""166"",
""name"": ""Joe"",
""mail"": ""joe@example.org""
},
""167"": {
""uid"": ""167"",
""name"": ""Pete"",
""mail"": ""pete@example.org""
},
""168"": {
""uid"": ""168"",
""name"": ""Fred"",
""mail"": ""fred@example.org""
}
}";
Dictionary<string, User> users =
JsonConvert.DeserializeObject<Dictionary<string, User>>(json);
foreach (KeyValuePair<string, User> kvp in users)
{
Console.WriteLine(kvp.Key);
Console.WriteLine(" uid: " + kvp.Value.uid);
Console.WriteLine(" name: " + kvp.Value.name);
Console.WriteLine(" mail: " + kvp.Value.mail);
}
}
}
出力は次のとおりです。
166
uid: 166
name: Joe
mail: joe@example.org
167
uid: 167
name: Pete
mail: pete@example.org
168
uid: 168
name: Fred
mail: fred@example.org