基于Habib的答案,您可以编写一个扩展方法:
public static bool ValidateJSON(this string s)
{
try
{
JToken.Parse(s);
return true;
}
catch (JsonReaderException ex)
{
Trace.WriteLine(ex);
return false;
}
}
然后可以这样使用:
if(stringObject.ValidateJSON())
{
// Valid JSON!
}
使用JContainer。parse(str)
方法来检查str是否是有效的Json。如果抛出异常,那么它不是有效的Json。
JObject。Parse
-可用于检查字符串是否为有效的Json对象JArray。Parse
-可用于检查字符串是否为有效的Json数组JContainer。Parse
-可用于检查两个Json对象
通过代码:
最好的办法是在try catch
中使用parse,并在解析失败时捕获异常。(我不知道有任何TryParse
方法)。
(使用JSON.Net)
最简单的方法是使用JToken
解析
字符串。解析
,并检查字符串是否分别以{
或[
开头和以}
或]
结尾(根据此答案添加):
private static bool IsValidJson(string strInput)
{
if (string.IsNullOrWhiteSpace(strInput)) { return false;}
strInput = strInput.Trim();
if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || //For object
(strInput.StartsWith("[") && strInput.EndsWith("]"))) //For array
{
try
{
var obj = JToken.Parse(strInput);
return true;
}
catch (JsonReaderException jex)
{
//Exception in parsing json
Console.WriteLine(jex.Message);
return false;
}
catch (Exception ex) //some other exception
{
Console.WriteLine(ex.ToString());
return false;
}
}
else
{
return false;
}
}
添加检查
将解析诸如{
或[
etc的原因是基于JToken的事实。parse"1234"
或"a string"
之类的值作为有效的标记。另一个选项可以是同时使用JObject。解析
和JArray。在解析中解析
,看看其中是否有人成功,但是我相信检查{}
和[]
应该更容易。(感谢@RhinoDevel指出)
没有JSON。网
你可以利用。Net框架4.5 System.Json命名空间,比如:
string jsonString = "someString";
try
{
var tmpObj = JsonValue.Parse(jsonString);
}
catch (FormatException fex)
{
//Invalid json format
Console.WriteLine(fex);
}
catch (Exception ex) //some other exception
{
Console.WriteLine(ex.ToString());
}
但是,你必须安装
System.Json
通过Nuget包管理器使用命令:PM
非编码方式:
通常,当有一个小json字符串时,你试图在json字符串中找到一个错误,那么我个人更喜欢使用可用的在线工具。我通常做的是:
将JSON字符串粘贴到JSONLint JSON验证器中,并查看其是否为有效的JSON
稍后将正确的JSON复制到http://json2csharp.com/并为其生成一个模板类,然后使用JSON对其进行反序列化。净
问题内容: 有谁知道PHP的健壮(和防弹)is_JSON函数代码片段?我(显然)遇到一种情况,我需要知道字符串是否为JSON。 嗯,也许通过JSONLint请求/响应来运行它,但这似乎有点过头了。 问题答案: 如果您使用内置的PHP函数,则 返回最后一个错误(例如, 当您的字符串不是JSON时)。 无论如何通常都会返回。
我已经四处寻找了一种合适的方法来捕获或防止无效的调用,特别是在WebSocket消息的情况下,因为它的性能受到影响而不涉及块。 我几乎完全将RESTful API转换为使用JSON进行通信的纯WebSocket API。唯一的问题是,当通过函数输入一个格式错误的消息字符串时,我不知道如何防止json.parse停止应用程序。从服务器发送的所有消息都是理论上正确的JSON,已经被stringied了
问题内容: 在Python中,有没有办法在尝试解析字符串之前检查字符串是否为有效JSON? 例如,使用Facebook Graph API之类的东西时,有时返回JSON,有时可能返回图像文件。 问题答案: 您可以尝试执行,如果您传递的字符串无法解码为JSON ,则会抛出。 通常,针对这种情况的“ Pythonic ”哲学称为EAFP,因为它 比许可更容易寻求宽恕 。
在Jenkins中解析json文件时面临以下错误 Json文件 错误 hudson.remoting.代理异常:net.sf.json.JSONExcture:无效的JSON字符串在net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:143)在net.sf.json.JSONSerializer.toJSON(JSONSerializer.j
本文向大家介绍检查字符串在Python中是否有效JSON,包括了检查字符串在Python中是否有效JSON的使用技巧和注意事项,需要的朋友参考一下 JSON是一种文本格式,用于在各种计算机程序之间轻松交换数据。它具有Python可以验证的特定格式。在本文中,我们将考虑一个字符串,并使用JSON模块验证该字符串是否表示有效的JSON格式。 创建JSON对象 json模块具有称为load的方法。它加载
问题内容: 我有一个包含1-n纬度/经度记录的JSON字符串。看起来像这样: 什么是解析此值以获取经纬度值循环的好方法?转义的双引号是否会影响解析? 谢谢亚历克斯 问题答案: 打印…