Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要一个字符串JSON验证器吗_C#_.net_Json - Fatal编程技术网

C# 需要一个字符串JSON验证器吗

C# 需要一个字符串JSON验证器吗,c#,.net,json,C#,.net,Json,我正在使用newtonsoft的JSON.Net,并且热爱它的每一分钟 但是,我使用JObject.Parse(jsonString)从响应字符串中获取JToken。如果我发送了无效的JSON,我会得到一个异常。我可以捕获异常,但我希望能够在将字符串发送到解析之前首先测试它 可能类似于JObject.TryParse()(它不存在) 我甚至愿意接受 布尔·瓦利德森(弦) 我知道那里有JSONLint,但我真的希望将外部调用保持在最低限度 有什么想法吗?最简单的解决方案是编写一个调用JObject

我正在使用newtonsoft的JSON.Net,并且热爱它的每一分钟

但是,我使用
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;
    }
}