我正在使用newtonsoft的JSON.Net并热爱它的每一分钟。
但是,我正在使用JObject.Parse(jsonString)
从响应字符串中获取JToken。如果我发送无效的JSON,我会得到一个例外。我可以捕获异常,但我想,能够在将它发送到Parse之前先测试字符串。
也许类似于JObject.TryParse()
(不存在)。
我甚至会接受 bool ValidJson(string)
我知道那里有JSONLint,但我真的希望将外部呼叫保持在最低限度。
有什么想法吗?
答案 0 :(得分:3)
最简单的解决方案是编写一个调用JObject.Parse
的函数,如果抛出异常则返回false。
答案 1 :(得分:3)
使用JContainer.Parse(str)方法检查str是否是有效的Json。如果这会抛出异常,那么它就不是有效的Json。
JObject.Parse - 可用于检查字符串是否是有效的Json对象
JArray.Parse - 可用于检查字符串是否是有效的Json数组
JContainer.Parse - 可用于检查Json对象和&阵列
答案 2 :(得分:0)
正在运行的代码段
public bool isValidJSON(string json)
{
try
{
JToken token = JObject.Parse(json);
return true;
}
catch(Exception ex)
{
return false;
}
}
感谢MRAB