首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ConfigurationElement序列化为JSON的简单方法

将ConfigurationElement序列化为JSON的简单方法
EN

Stack Overflow用户
提问于 2010-04-20 02:27:27
回答 1查看 1K关注 0票数 0

我需要获取我的xxx.config自定义配置的一部分,并将其作为JSON直接序列化为我的页面。

使用DataContractJsonSerializer的收益

代码语言:javascript
复制
{"LockItem":false}

这与来自XmlSerializer的响应类似。我似乎找不到可以让我控制System.Configuration类的序列化过程的重写。有没有什么好的技术可以解决这个问题呢?我是不是应该创建一组类似DTO的模拟类,并将数据组装到其中以进行序列化?

EN

回答 1

Stack Overflow用户

发布于 2010-04-20 02:53:52

据我所知,您希望能够手动序列化对象,同时仍然受益于.NET到Json的序列化类。

在这种情况下,您可以使用JavaScriptSerializer类。您可以为此类注册一个转换器,在这种情况下,您可以完全控制正在传递的对象的序列化。您覆盖的Serialize方法返回一个简单的IDictionary,然后将其直接序列化为json..

下面是一个示例,说明它是什么样子的。

代码语言:javascript
复制
void Main()
{
    var js = new JavaScriptSerializer();
    js.RegisterConverters(new[] { new PonySerializer() });
    js.Serialize(new Bar { Foo = 5 }).Dump();
}

public class PonySerializer : JavaScriptConverter
{
    public override IEnumerable<Type> SupportedTypes
    {
        get { return new [] { typeof(Bar) }; }
    }

    public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
    {
        var result = new Dictionary<string, object>();
        if (obj is Bar)
        {
            var ob = obj as Bar;
            result["Foo"] = ob.Foo;
        }
        return result;
    }

    public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
    {
        throw new NotImplementedException();
    }
}

public class Bar
{
    public int Foo { get; set; }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2669846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档