因此,我有此Web API,该API调用服务,该服务又返回json字符串。
该字符串看起来像这样:
{
"title": "Test",
"slug": "test",
"collection":{ },
"catalog_only":{ },
"configurator":null
}
我已将其大幅减少,以便更轻松地查看我的问题。
当我进行API调用时,然后使用Factory方法来分解响应,如下所示:
/// <summary>
/// Used to create a product response from a JToken
/// </summary>
/// <param name="model">The JToken representing the product</param>
/// <returns>A ProductResponseViewModel</returns>
public ProductResponseViewModel Create(JToken model)
{
// Create our response
var response = new ProductResponseViewModel()
{
Title = model["title"].ToString(),
Slug = model["slug"].ToString()
};
// Get our configurator property
var configurator = model["configurator"];
// If the configurator is null
if (configurator == null)
throw new ArgumentNullException("Configurator");
// For each item in our configurator data
foreach (var item in (JObject)configurator["data"])
{
// Get our current option
var option = item.Value["option"].ToString().ToLower();
// Assign our configuration values
if (!response.IsConfigurable) response.IsConfigurable = (option == "configurable");
if (!response.IsDesignable) response.IsDesignable = (option == "designable");
if (!response.HasGraphics) response.HasGraphics = (option == "graphics");
if (!response.HasOptions) response.HasOptions = (option == "options");
if (!response.HasFonts) response.HasFonts = (option == "fonts");
}
// Return our Product response
return response;
}
}
现在,您可以看到我正在获取我的配置器属性,然后检查它是否为空。
json字符串将配置程序显示为null,但是当我在检查中放置一个断点时,它实际上将其值显示为{}。
我的问题是,相对于该括号响应,如何显示它的值(空)?
最佳答案
您要与JToken
键关联的configurator
。有这样一个令牌-这是一个空令牌。
您可以使用以下方法进行检查:
if (configurator.Type == JTokenType.Null)
因此,如果您想抛出一个明确的
null
标记或根本没有指定configurator
,则可以使用:if (configurator == null || configurator.Type == JTokenType.Null)
关于c# - C#解析JSON值,检查是否为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30706393/