Json.NET可以反序列化“动态"域名吗?特性? [英] Can Json.NET deserialize "dynamic" properties?

查看:100
本文介绍了Json.NET可以反序列化“动态"域名吗?特性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的C#服务正在从外部服务以模糊"格式接收对象,如下所示:

my C# service is receiving objects from an external service with a "fuzzy" format that looks like:

{
  "member": {
      "<dynamicProperty>": {
          "value":"some_string",
          "score": 10
      }
}

此属性"对于每个对象都可以更改,我没有为其可能的值定义和限制的列表,当然我不能更改此格式.

This property "" can change for every object, I don't have a defined and restricted list for its possible values and of course I can't change this format.

有人知道Json.NET或其他Json .NET序列化程序是否可以帮助我,并允许我在下面定义类似MemberDynamicProperty的类,这些类可用于简单的反序列化?

Does anybody know if Json.NET or some other Json .NET serializer, could help me and allow me to define classes like Member and DynamicProperty below that I could use for an easy deserialization?

class Member
{
    [JsonProperty(PropertyName= "??")] // what should I put here?
    public DynamicProperty { get; set; }
}

class DynamicProperty
{
    public string value;
    public int score;
}

谢谢

推荐答案

您可以使用Dictionary<string, object>

class Member
{
     public Dictionary<string, object> { get; set; }
}

或者,您可以使用 JsonExtensionData 属性:

Or, you can use the JsonExtensionData Attribute:

class Member
{
     [JsonExtensionData]
     public Dictionary<string, JToken> { get; set; }
}

这篇关于Json.NET可以反序列化“动态"域名吗?特性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆