我尝试序列化/反序列化以下类对象:
public class LiveDataFeedModuleConfiguration
{
public Dictionary<VendorID, dynamic> LiveDataFeedAPIConfigurations { get; private set; }
public LiveDataFeedModuleConfiguration(Dictionary<VendorID, dynamic> liveDataFeedAPIConfigurations)
{
this.LiveDataFeedAPIConfigurations = liveDataFeedAPIConfigurations;
}
public void AddElement(VendorID vendorId, dynamic liveDataFeedAPIConfiguration)
{
LiveDataFeedAPIConfigurations.Add(vendorId, liveDataFeedAPIConfiguration);
}
}
我尝试过ServiceStack,但是当我反序列化存储为字典值的动态对象为空时。我也尝试过Json.Net但我不喜欢反序列化后的字典包含JObjects。我只是希望返回一个LiveDataFeedModuleConfiguration
类型的对象,其中包含Dictionary<VendorID, dynamic>
,我可以轻松地将.Net从动态tytpe转换为已知对象类型。在Json.net中有没有办法绕过JObject“杂乱”并正确地反序列化为存储在字典值中的类型?我用了Newtonsoft.Json.JsonConvert.DeserializeObject<LiveDataFeedModuleConfiguration>(string jsonContent);
。但它反序列化为jObject类型的字典值,这是不希望的。
任何使用json.net(给定,我可以在通用反序列化方法中完成正确的序列化)或其他库的解决方案都受到欢迎。
由于
答案 0 :(得分:0)
检查一下。 https://github.com/jsonfx/jsonfx
这适用于动态
答案 1 :(得分:0)
我最终放弃了在字典中存储动态以实现JSON序列化。在处理包含动态的字典时,我提到的大多数库都非常不稳定。
答案 2 :(得分:0)
万一你仍然考虑在代码中回到原来的意图表达,如你的问题:
http://forums.xamarin.com/discussion/comment/39084/#Comment_39084
'希望这有帮助,
答案 3 :(得分:-2)
您是否尝试过使用JavaScriptSerializer课程?据我所知,你可以写点像
var _object = JavaScriptSerializer.Deserializer<LiveDataFeedModuleConfiguration>(yourJSON);
您将获得LiveDataFeedModuleConfiguration
实例