gpt4 book ai didi

c# - 判断是数组还是对象

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:10 29 4
gpt4 key购买 nike

我创建了一个类来解析 JSON 响应。我遇到的麻烦是,一个项目有时是一个数组,而其他项目是一个对象。我试图想出一个解决方法,但它总是给我带来一些其他问题。

我想要某种 if 或 try 语句来确定创建的内容。

伪代码...

    [DataContract]
public class Devices
{
if(isArray){
[DataMember(Name = "device")]
public Device [] devicesArray { get; set; }}

else{
[DataMember(Name = "device")]
public Device devicesObject { get; set; }}
}

我使用 Dan 的代码提出了以下解决方案,但现在当我尝试使用它时遇到了转换问题。“无法将‘System.Object’类型的对象转换为类型‘MItoJSON.Device’”

[DataContract]
public class Devices
{
public object target;

[DataMember(Name = "device")]
public object Target
{
get { return this.target; }

set
{
this.target = value;

var array = this.target as Array;
this.TargetValues = array ?? new[] { this.target };
}
}

public Array TargetValues { get; private set; }
}

最佳答案

将目标属性声明为一个对象。然后,您可以创建一个辅助属性来处理目标是数组还是单个对象:

    private object target;

public object Target
{
get { return this.target; }

set
{
this.target = value;

var array = this.target as Array;
this.TargetValues = array ?? new[] { this.target };
}
}

public Array TargetValues { get; private set; }

关于c# - 判断是数组还是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com