我需要获取我的xxx.config自定义配置的一部分,并将其作为JSON直接序列化为我的页面。
使用DataContractJsonSerializer的收益
{"LockItem":false}这与来自XmlSerializer的响应类似。我似乎找不到可以让我控制System.Configuration类的序列化过程的重写。有没有什么好的技术可以解决这个问题呢?我是不是应该创建一组类似DTO的模拟类,并将数据组装到其中以进行序列化?
发布于 2010-04-20 02:53:52
据我所知,您希望能够手动序列化对象,同时仍然受益于.NET到Json的序列化类。
在这种情况下,您可以使用JavaScriptSerializer类。您可以为此类注册一个转换器,在这种情况下,您可以完全控制正在传递的对象的序列化。您覆盖的Serialize方法返回一个简单的IDictionary,然后将其直接序列化为json..
下面是一个示例,说明它是什么样子的。
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; }
}https://stackoverflow.com/questions/2669846
复制相似问题