【问题标题】:Check if a response string is a JSON Object or an XML?检查响应字符串是 JSON 对象还是 XML?
【发布时间】:2017-06-18 20:32:47
【问题描述】:

检查响应字符串是 JSON 对象还是 XML 的 C# 代码?

我正在尝试这个:

string responseString = jQuery.parseJSON(response.Content.ReadAsStringAsync().Result);

但如果结果不是有效的 JSON 对象,这将引发异常。 (在某些情况下,这会为我返回 XML 内容)我想避免异常处理。是否有任何方法返回 bool 以检查这是否是有效的 json?

【问题讨论】:

标签: c# json json.net


【解决方案1】:

在字符串级别:


using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
public static class Extentions
{

    public static bool IsValidJson(this string value)
    {
        try
        {
            var json = JContainer.Parse(value);
            return true;
        }
        catch
        {
            return false;
        }
    }

}

【讨论】:

    【解决方案2】:

    检查响应消息的内容类型。

    if (response.Content.Headers.ContentType.MediaType == "application/json")
    {
        // parse json
    }
    else
    {
        // parse xml
    }
    

    您还可以从响应中读取第一个字符。 如果是 XML 内容,您应该找到 <。即使 XML 声明存在与否。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 2012-04-06
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多