0

我尝试序列化/反序列化以下类对象:

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 从动态类型转换为已知对象类型的位置。Json.net 中有没有办法绕过 JObject “混乱”并正确反序列化为存储在字典值中的类型?我用过Newtonsoft.Json.JsonConvert.DeserializeObject<LiveDataFeedModuleConfiguration>(string jsonContent);。但它反序列化为不需要的 jObject 类型的字典值。

欢迎使用 json.net 的任何解决方案(假设,我可以在通用反序列化方法中完成正确的序列化)或其他库。

谢谢

4

4 回答 4

0

看一下这个。https://github.com/jsonfx/jsonfx

这适用于动态

于 2013-04-30T09:42:09.530 回答
0

以防万一您仍然考虑在代码中回到最初的意图表达,如您的问题:

http://forums.xamarin.com/discussion/comment/39084/#Comment_39084

'希望这可以帮助,

于 2013-12-31T07:07:08.323 回答
0

我最终放弃了将动态存储在字典中以用于 JSON 序列化的目的。在处理包含动态的字典时,我提到的大多数库都非常不稳定。

于 2013-05-08T06:42:44.157 回答
-2

您是否尝试过使用JavaScriptSerializer类?据我所知,你可以写类似

var _object = JavaScriptSerializer.Deserializer<LiveDataFeedModuleConfiguration>(yourJSON);

你会得到你的LiveDataFeedModuleConfiguration实例

于 2013-04-30T09:25:27.567 回答