当前位置: 首页 > 知识库问答 >
问题:

如何使用JSON确保字符串是有效的JSON。网

钱远
2023-03-14

我有一根生弦。我只是想验证这个字符串是否是有效的JSON。我正在使用JSON. NET。

共有3个答案

贺经纶
2023-03-14

基于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!
}
戚兴思
2023-03-14

使用JContainer。parse(str)方法来检查str是否是有效的Json。如果抛出异常,那么它不是有效的Json。

JObject。Parse-可用于检查字符串是否为有效的Json对象
JArray。Parse-可用于检查字符串是否为有效的Json数组
JContainer。Parse-可用于检查两个Json对象

管景天
2023-03-14

通过代码:

最好的办法是在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字符串。看起来像这样: 什么是解析此值以获取经纬度值循环的好方法?转义的双引号是否会影响解析? 谢谢亚历克斯 问题答案: 打印…