接口接收到这么一个Json字符串,现在需要给它反序列化一下,可是它其中有一个key是不固定的。
{"images":{"HTB1xVhfKpXXXXXmXVXXq6xXFXXXY.jpg":{"fileSize":119718,"groupId":"","height":666,"iid":3998011801,"width":1000,"referenceCount":0,"displayName":"test"},"HTB1DzELIVXXXXaNXFXXq6xXFXXXX.jpg":{"fileSize":128849,"groupId":"","height":820,"iid":3761175464,"width":820,"referenceCount":3,"displayName":"gougouopitmize"}}}
解决方案:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace ConsoleAppTest
{
class Program
{
static void Main(string[] args)
{
string strJson = "{\"images\":{\"HTB1xVhfKpXXXXXmXVXXq6xXFXXXY.jpg\":{\"fileSize\":119718,\"groupId\":\"\",\"height\":666,\"iid\":3998011801,\"width\":1000,\"referenceCount\":0,\"displayName\":\"test\"},\"HTB1DzELIVXXXXaNXFXXq6xXFXXXX.jpg\":{\"fileSize\":128849,\"groupId\":\"\",\"height\":820,\"iid\":3761175464,\"width\":820,\"referenceCount\":3,\"displayName\":\"gougouopitmize\"}}}";
var obj = JsonConvert.DeserializeObject<MyImages>(strJson);
foreach (var item in obj.images)
{
Console.WriteLine();
Console.WriteLine("key :" + item.Key);
Console.WriteLine("iid :" + item.Value.iid);
Console.WriteLine("fileSize :" + item.Value.fileSize);
Console.WriteLine("displayName:" + item.Value.displayName);
}
Console.ReadKey();
}
}
/// <summary>
/// 该Json对应的Model类需要借助Dictionary来创建
/// </summary>
class MyImages
{
public Dictionary<string, dynamic> images { set; get; }
}
}