C# 检查响应中是否存在值。易趣API
我在开发应用程序时遇到问题。 我正在使用eBay API获取卖家列出的物品的相关信息。我使用的调用名为“GetSellerList” 如果项目有可用的FreeAddedCategory,则响应可能包含名为“CategoryID”(FreeAddedCategory.CategoryID)的值。您会发现这样的XML作为响应:C# 检查响应中是否存在值。易趣API,c#,xml,soap,nullreferenceexception,C#,Xml,Soap,Nullreferenceexception,我在开发应用程序时遇到问题。 我正在使用eBay API获取卖家列出的物品的相关信息。我使用的调用名为“GetSellerList” 如果项目有可用的FreeAddedCategory,则响应可能包含名为“CategoryID”(FreeAddedCategory.CategoryID)的值。您会发现这样的XML作为响应: <ItemArray> <Item> <FreeAddedCategory> <CategoryID>
<ItemArray>
<Item>
<FreeAddedCategory>
<CategoryID>XXXXXXXXX</CategoryID>
</FreeAddedCategory>
</Item>
</ItemArray>
但此检查也会显示相同的错误消息。我该怎么做才能使代码正常工作?逻辑应该是这样的:
IF item.FreeAddedCategory.CategoryID exist
{
do everything that needs to be done
}
ELSE skip;
尝试:
或者使用
CategoryId
,如果这对您的情况更有意义。几乎所有NullReferenceException
的情况都是相同的。请参阅“”以获取一些提示。问题已解决。我在Chuck的回答下面写下了我的解决方案。是的,这是一个愚蠢的初学者错误;)对不起,恰克,谢谢你的快速回复。我的错误真的很愚蠢!我没有选择“item.FreeAddedCategory.CategoryID”作为“null”,而是选择了“item.FreeAddedCategory”。因为“item.FreeAddedCategory”已经是“null”,所以当我尝试访问“item.FreeAddedCategory.CategoryID”时,我确实得到了NullReferenceException。
IF item.FreeAddedCategory.CategoryID exist
{
do everything that needs to be done
}
ELSE skip;
XElement root = XElement.Load(file); // .Parse(string);
if (root.Descendants("FreeAddedCategory").Any())
{
// do exists
}
else
{
// doesn't exist
}