【问题标题】:What is best way to check if any of the property of object is null or empty?检查对象的任何属性是否为空或空的最佳方法是什么?
【发布时间】:2015-08-23 11:19:33
【问题描述】:

我正在创建 Json 文件,在创建之前我想检查是否有任何属性为空。我想为此创建抽象方法。所以我不必一次又一次地写。

public JObject CreatUserJson(Account lacc)
        {
            JObject pin = new JObject(
                new JProperty("email", lacc.email),
                new JProperty("fullname", lacc.fullname),
                new JProperty("phonenumber", lacc.phonenumber),
                new JProperty("ip_address", lacc.ip_address),
                new JProperty("password", lacc.password),
                new JProperty("client_id", Settings.Globals.CLIENT_ID),
                new JProperty("client_secret", Settings.Globals.CLIENT_SECRET)

        );
            return pin;
        }

这就是我定义我的方法的方式,并且有类似的方法,我想要标准的方法来检查并在缺少任何值时抛出异常..

public JObject IncomingWireNoticeJson(SyanpasePayLib.Resources.Wire lWire)
        {
            JObject pin = new JObject(
                new JProperty("amount", lWire.amount),
                new JProperty("status_url", lWire.status_url),
                new JProperty("memo", lWire.memo),
                new JProperty("oauth_consumer_key", lWire.oauth_consumer_key)
                );
            return pin;
        }

这是方法的另一个例子,没有相似之处。如果缺少任何值,我只想循环并抛出异常。

例如,我知道CreatUserJson 我需要最少 4 个输入和最多 8 个输入..

IncomingWireNoticeJson 的方法相同,我需要最少 2 个输入和最多 4 个输入..

如果范围大于或小于最小值和最大值,那么它应该抛出错误..(这部分我可以管理,但我不知道如何定义循环遍历该对象的标准方式)
有人可以帮我解决这个问题吗?

【问题讨论】:

标签: c# asp.net .net json properties


【解决方案1】:

我认为 JObject 有一个名为 Properties() 的方法。所以你可以遍历结果并检查值是否不为空。

foreach (JProperty property in pin.Properties()) 
{
    if (string.IsNullOrWhiteSpace(property.Value)) 
    {
        throw new Exception("Some exception");
        //Or perform count for minimum/maximum check 
    }
}

如果使用 Properties() 方法,最小和最大检查也很容易。 示例也可以使用 Linq 轻松重写,但出于解释和扩展逻辑的目的,我编写了普通版本。

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2014-05-06
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多