JSon 反序列化哈希



在我的Senario中,JSon响应实体中有一段代码,如下所示:

"hashkeys":
{
    "key1":"value1",
    "key2":"value2",
    "key3":"value3"
}

像"key1","key2","key3"这样的键(甚至键的数量)仅在运行时知道,但不能在编码时确定。

如何对 JSon 实体进行编码以反序列化此类响应?我正在使用C#语言DataContractJsonSerializer。

我的测试代码:

[DataContract]
class Test {
    [DataMember(Name = "hashkeys")]
    public Dictionary<string, string> dic { get; set; }
}
class Program
{
    public static T FromJson<T>(string strJson) where T : class
    {
        DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strJson)))
        {
            return ds.ReadObject(ms) as T;
        }
    }
    static void Main(string[] args)
    {
        string json = @"{""hashkeys"":{""key1"":""value1"",""key2"":""value2""}}";
        Test MyResponse = FromJson<Test>(json);
        Console.WriteLine(MyResponse);
    }
}
您可以使用

像这样stringstring Dictionary

string json = @"{""key1"":""value1"",""key2"":""value2""}";   
Dictonary<string,string> MyResponse =     JsonConvert.DesirializeObject<Dictionary<string,string>>(json);
Console.WriteLine(values.Count);
// 2
Console.WriteLine(values["key1"]);
// Value1

有关更多示例和参考,请单击此处

将其反序列化为 Dictionary<string, string>

这是一个KeyValuePair<string, string>的集合,这正是您要处理的。 "KeyX"将成为Key"valueX"将成为字典全文的Value

最新更新