C#检查!null和JSON响应的string.Empty抛出FormatException

时间:2016-08-25 08:48:45

标签: c# json isnullorempty

我在期望JSON响应的方法中编写了一个简单的API调用......没什么了不起的:

// [API call...]

dynamic responseString = JsonConvert.DeserializeObject(response.Result.Content.ReadAsStringAsync().Result);
item.category               = responseString.category;
item.shortDescription       = responseString.shortDescription;
item.countryOfManufacture   = responseString.manufacturerCountry ?? "DE";

有时,API中没有所有必需参数可用...所以我尝试检查 is null is string.Empty 并提高用户可以输入缺失值的对话框......

但是这个:

            if (responseString.weight == null ||responseString.weight == string.Empty )
            {
                DialogArgs args = new DialogArgs();
                args.Add("Gewicht");
                OnMissingValue?.Invoke(args);
                item.weight = args.Get<float>("Gewicht");
            }
            else
            {
                item.weight = Convert.ToSingle(responseString.weight) / 1000;
            }

if (string.IsNullOrEmpty(responseString.weight))

抛出 FormatException 。 如果我选中 is null is string.Empty ,它就会像魅力一样。我知道ref和值类型之间的差异,并且认为可能存在问题......但是,我想知道它为什么会像这样......

提前致谢...对不起我的英语......

马库斯

1 个答案:

答案 0 :(得分:0)

好的,我明白了...... dynamic描述符就是原因。你必须将它转换为字符串,如下所示:

if (string.IsNullOrEmpty((string)responseString.weight))

...谢谢你的努力

马库斯