如何使用 ServiceStack JsonSerializer 序列化 Hashtable?

Posted

技术标签:

【中文标题】如何使用 ServiceStack JsonSerializer 序列化 Hashtable?【英文标题】:How to Serialize Hashtable with ServiceStack JsonSerializer? 【发布时间】:2012-09-07 16:20:25 【问题描述】:

我正在尝试使用 ServiceStack JsonSerializer 序列化 Hashtable。然而,与 Json.Net 和内置 javascriptSerializer 不同,它返回类型名称 DictionaryEntry 而不是值。

这段代码:

Hashtable h = new Hashtable()  "A", 1 ,  "B", 2  ;

Console.WriteLine(JsonConvert.SerializeObject(h));
Console.WriteLine(new JavaScriptSerializer().Serialize(h));
Console.WriteLine(ServiceStack.Text.JsonSerializer.SerializeToString(h, typeof(Hashtable)));

返回这个:

"A":1,"B":2
"A":1,"B":2
["System.Collections.DictionaryEntry","System.Collections.DictionaryEntry"]

我做错了吗?

【问题讨论】:

a) 不要使用 ServiceStack 的 JsonSerializer 或 b) 不要使用 Hashtable @L.B,这不是很有建设性,我觉得它居高临下。问题是“如何……”,而不是“我应该怎么做?” 【参考方案1】:

NuGet 上的最新版ServiceStack.Text (v3.9.11+) 现在包括对 Hashtable 的支持。

【讨论】:

以上是关于如何使用 ServiceStack JsonSerializer 序列化 Hashtable?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ServiceStack 访问响应标头

如何使用 servicestack 类型的客户端?

如何修改 ServiceStack.OrmLite 生成的 SQL?

使用 JSON 时如何让 ServiceStack 用破折号格式化 Guid?

如何最好地对使用 IServiceGateway 调用其他内部服务的 ServiceStack 服务进行单元测试

Redis ServiceStack 使用事务时如何创建多个序列号