C# 需要一个字符串JSON验证器吗
我正在使用newtonsoft的JSON.Net,并且热爱它的每一分钟 但是,我使用C# 需要一个字符串JSON验证器吗,c#,.net,json,C#,.net,Json,我正在使用newtonsoft的JSON.Net,并且热爱它的每一分钟 但是,我使用JObject.Parse(jsonString)从响应字符串中获取JToken。如果我发送了无效的JSON,我会得到一个异常。我可以捕获异常,但我希望能够在将字符串发送到解析之前首先测试它 可能类似于JObject.TryParse()(它不存在) 我甚至愿意接受 布尔·瓦利德森(弦) 我知道那里有JSONLint,但我真的希望将外部调用保持在最低限度 有什么想法吗?最简单的解决方案是编写一个调用JObject
JObject.Parse(jsonString)
从响应字符串中获取JToken。如果我发送了无效的JSON,我会得到一个异常。我可以捕获异常,但我希望能够在将字符串发送到解析之前首先测试它
可能类似于JObject.TryParse()(它不存在)
我甚至愿意接受
布尔·瓦利德森(弦)
我知道那里有JSONLint,但我真的希望将外部调用保持在最低限度
有什么想法吗?最简单的解决方案是编写一个调用
JObject.Parse
的函数,如果抛出Newtonsoft.Json.JsonReaderException
则返回false,使用JContainer.Parse(str)方法检查str是否是有效的Json。如果抛出异常,则它不是有效的Json
JObject.Parse - Can be used to check if the string is a valid Json object
JArray.Parse - Can be used to check if the string is a valid Json Array
JContainer.Parse - Can be used to check for both Json object & Array
工作代码段
感谢返回
true
用于此无效的JSON
:{A:{B::1}
返回true
用于此无效的JSON
:{A:{B::1}
public bool isValidJSON(string json)
{
try
{
JToken token = JObject.Parse(json);
return true;
}
catch(Exception ex)
{
return false;
}
}