c# - 如何将 Json 中的自定义节点反序列化为名称不断变化的 c#?

标签 c# dynamic deserialization

下面是我从端点收到的 json 的一部分。

如果您查看下面的 Json,“User-Defined-Network-Name”是一个自定义节点,名称每次都会更改。

如何为此 Json 定义 C# 对象?

"addresses": {
            "public": [{
                "version": 6,
                "address": "2005:4600:788e:0910:1a72:81c0:ff03:c7y6"
            },
            {
                "version": 4,
                "address": "197.68.xx.xxx"
            }],
            "private": [{
                "version": 4,
                "address": "10.xx.xx.xxx"
            }],
            "User-Defined-Network-Name": [{
                "version": 4,
                "address": "192.xxx.x.xxx"
            }]
        }

这就是我走了多远-

[Serializable]
    public class Addresses
    {
        public List<Public> @public { get; set; }
        public List<Private> @private { get; set; }
    }

我正在使用“JavascriptSerializer”类反序列化 json。

谢谢, 瑞安

最佳答案

addresses可以反序列化为类似 Dictionary<string,List<YourClass>> 的类型其中 YourClass持有 versionaddresss .

var obj = new JavaScriptSerializer().Deserialize<Root>(jsonstring);

--

public class Root
{
    public Dictionary<string,List<VersionAddress>> addresses;
    //Your other fields/properties
}

public class VersionAddress
{
    public string version;
    public string address;
}

关于c# - 如何将 Json 中的自定义节点反序列化为名称不断变化的 c#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368913/

相关文章:

c# - 使用 directshow 在桌面录制上翻转光标图标

c# - RabbitMq 以异步方式处理接收到的消息

c - C 中的动态字符串矩阵

android布局动态调整大小

rust - 我怎样才能让 Serde 在反序列化期间从 arena 分配字符串?

c# - 通过等效的简化字母数字字符转换非 ascii 多文化字符

c# - 队列将项目移回末尾

reactjs - React - 使用 onClick 创建子组件的动态列表

c# - 在 C# 中使用套接字发送复杂对象,但也发送简单的文本字符串

java - jackson JSON + Java 泛型