因此,我有此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/

10-17 00:57