C# 如何反序列化简单结构中的 json DATAS 数组?

Posted

技术标签:

【中文标题】C# 如何反序列化简单结构中的 json DATAS 数组?【英文标题】:C# How can i deserialize json DATAS array in the simple struct? 【发布时间】:2021-07-11 06:11:45 【问题描述】:

    "ASD":  "CONNECTIONS": 1, "DATAS": [0, 0, 0] ,
    "Something": 
        "PITCH": 77,
    
    

data = JsonConvert.DeserializeObject<DATA>(text);

public class DATA

    public struct ASD
    
            public float CONNECTIONS;
            public float[] DATAS; //?? This is every time is null
    

    public struct Something
    
        public float PITCH;
   

【问题讨论】:

您能否添加用于反序列化 JSON 的代码和模型。请将它们作为文本而不是图像添加到问题中。 【参考方案1】:

仅仅定义你想要使用的结构是不够的。对象ASD 必须将properties 类型化为这些结构。 (请注意屏幕截图中定义上方的0 references 提示!)

public class DATA

    public ASD ASDget;set;
    public Something Something get;set;


public struct ASD

    public float CONNECTIONS;
    public float[] DATAS; //?? This is every time is null (not any more it wont be!)


public struct Something

    public float PITCH;

它的工作实例:https://dotnetfiddle.net/wgI5zR

【讨论】:

是的,我这样做了,但是 ASD 结构中的 DATAS 数组为空,我试图在控制台中写出消息并且 DATAS 不为零"ASD":"CONNECTIONS" :1,"数据":[4,23,1]。 @Smeth 对我来说似乎工作正常 - 看这里:dotnetfiddle.net/MByBMP 你一定是做错了什么 也许,实际上其他一切工作正常,只有 Datas 数组返回 null。我会试着弄清楚...

以上是关于C# 如何反序列化简单结构中的 json DATAS 数组?的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中从 JSON 反序列化数组

c# 通过json.net中的JsonConverter进行自定义序列化与反序列化

在C#中,Json的序列化和反序列化的几种方式总结

如何在C#中解析/反序列化从rest服务返回的JSON

如何在c#中使用具有相同名称但不同属性和结构的元素反序列化XML

有啥简单的方法可以在不进行反序列化的情况下从 json 中找出最低值 c#