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