检查响应字符串是 JSON 对象还是 XML



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

我正在尝试这个:

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

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

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

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

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

字符串级别:


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;
        }
    }
}
用于

检查响应字符串是 JSON 还是 XML 的 Swift 代码

if response.mimeType == "application/xml" {
   //XML
} else if response.mimeType == "application/json" {
   //JSON
} else {
   //Other
}

https://developer.apple.com/documentation/foundation/urlresponse/1411613-mimetype

相关内容

  • 没有找到相关文章