第三方NuGet包会引发异常,并且在其异常消息中有一个错误和一个JSON对象:
Request failed, Message: {"Message":"Some error message"}
如何从字符串中提取JSON并获取Message属性?
我知道我可以使用Regex格式化字符串,然后再将其传递给反序列化器,甚至修剪文本直到第一个{
是否有使用Json.NET的更干净的方法?
答案 0 :(得分:1)
否。
Json.Net用于解析JSON。如果字符串中包含非JSON的多余文本,则解析器将无法理解它。最好的选择是像在问题中建议的那样,在第一个大括号之前(和最后一个大括号之后)删除文本。您可以创建一个辅助方法来轻松实现此目的:
public static string ExtractJson(string text)
{
int i = text.IndexOf('{');
int j = text.LastIndexOf('}');
return i > -1 && j > i ? text.Substring(i, j - i + 1) : null;
}
一旦提取了JSON,就可以像平常一样使用Json.Net。