检查响应字符串是 JSON 对象还是 XML?
Posted
技术标签:
【中文标题】检查响应字符串是 JSON 对象还是 XML?【英文标题】:Check if a response string is a JSON Object or an XML? 【发布时间】:2017-06-18 20:32:47 【问题描述】:检查响应字符串是 JSON 对象还是 XML 的 C# 代码?
我正在尝试这个:
string responseString = jQuery.parseJSON(response.Content.ReadAsStringAsync().Result);
但如果结果不是有效的 JSON 对象,这将引发异常。 (在某些情况下,这会为我返回 XML 内容)我想避免异常处理。是否有任何方法返回 bool 以检查这是否是有效的 json?
【问题讨论】:
检查响应的内容类型。 为什么要避免异常处理? 正如 Kalten 所说,查看响应的内容类型,例如***.com/questions/11945201/… How to get content type of a web address?的可能重复 可能你必须解析它,即使媒体类型是 json/xml,我想也可能是格式错误。 【参考方案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 声明存在与否。
【讨论】:
以上是关于检查响应字符串是 JSON 对象还是 XML?的主要内容,如果未能解决你的问题,请参考以下文章
Java 检查字符串是有效的 JSON 还是有效的 XML,或者两者都不是