我在期望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和值类型之间的差异,并且认为可能存在问题......但是,我想知道它为什么会像这样......
提前致谢...对不起我的英语......
马库斯
答案 0 :(得分:0)
好的,我明白了...... dynamic
描述符就是原因。你必须将它转换为字符串,如下所示:
if (string.IsNullOrEmpty((string)responseString.weight))
...谢谢你的努力
马库斯