c# - Asp.Net 将 Dictionary<string, object> 反序列化为对象

标签 c# asp.net serialization

反序列化的最佳方法是什么

Dictionary<string, object>{
   {"fName", "John"},
   {"lName", "Doe"},
   {"email", "john@doe.net"}
}

对此
class Member{
   string fName;
   string lName;
   string email;
}

最佳答案

如今,NewtonSoft 在 ASP.NET 应用程序中变得如此普遍,以至于如果我需要一个简短而甜蜜的解决方案来解决这种类型的映射,我可以使用一些这样的代码。当然,如果第三方库尚不存在,则引入第三方库可能会被滥用,但有时我们只是使用有效的库。 Newtonsoft 做到了!

using Newtonsoft.Json;
class SerializationTests
{
    public void DictionarySerializeSample()
    {

        var dict = new Dictionary<string, object>
        {
            {"fName", "John"},
            {"lName", "Doe"},
            {"email", "john@doe.net"}
        };

        string dictInJson = JsonConvert.SerializeObject(dict);
        var member = JsonConvert.DeserializeObject<Member>(dictInJson);

        // use Newtonsoft to write out the object re-serialized
        Console.WriteLine(JsonConvert.SerializeObject(member, Formatting.Indented));

    }

    public class Member
    {
        public string fName;
        public string lName;
        public string email;
    }
}

关于c# - Asp.Net 将 Dictionary<string, object> 反序列化为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782326/

相关文章:

c# - 将带有 "+"的字符串值发布到操作用空格替换值

asp.net - jQuery ajax 调用的返回值的大小限制是多少?

c# 子类的 XML 序列化 - 删除 xmlns :p1 and p1:type attributes from root node

c# - 如何将任何对象序列化为字符串?

Java继承问题: going beyond the vtable

c# - SSRS Web 服务 LoadReport() 异常被抛出

c# - C# 6.0 的字符串插值是否依赖于反射?

c# - WPF 中可调整大小的自定义窗口

ASP.net 在本地主机上调试 https

asp.net - 我应该加密通过 URL 参数传递的 GUID 吗?