ホームページ > バックエンド開発 > C++ > JSON.NET または System.Json を使用して JSON 文字列の有効性を効率的に検証するにはどうすればよいですか?

JSON.NET または System.Json を使用して JSON 文字列の有効性を効率的に検証するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-10 21:57:43
オリジナル
863 人が閲覧しました

How Can I Efficiently Verify JSON String Validity Using JSON.NET or System.Json?

JSON 文字列の有効性を確認する効率的な方法: JSON.NET と System.Json

データ処理では、元の文字列が有効な JSON であることを確認することが重要です。 JSON.NET と System.Json はどちらも信頼性の高いソリューションを提供します。

コードの実装:

最も信頼できる方法は、JSON.NET の JToken.Parse メソッドを使用し、それを try-catch ブロック内にネストすることです。これにより、文字列を解析し、JSON が無効であることを示す例外をキャッチできるようになります。

<code class="language-csharp">using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

private static bool IsValidJson(string strInput)
{
    if (string.IsNullOrWhiteSpace(strInput)) { return false; }
    strInput = strInput.Trim();
    if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || // 对象
        (strInput.StartsWith("[") && strInput.EndsWith("]"))) // 数组
    {
        try
        {
            var obj = JToken.Parse(strInput);
            return true;
        }
        catch (JsonReaderException jex)
        {
            // 解析异常
            Console.WriteLine(jex.Message);
            return false;
        }
        catch (Exception ex)
        {
            // 其他异常
            Console.WriteLine(ex.ToString());
            return false;
        }
    }
    else
    {
        return false;
    }
}</code>
ログイン後にコピー

.NET Framework 4.5 の System.Json 名前空間には、JsonValue.Parse メソッドも用意されています。

<code class="language-csharp">using System.Runtime.Serialization.Json;

string jsonString = "someString";
try
{
    var tmpObj = JsonValue.Parse(jsonString);
}
catch (FormatException fex)
{
    // 无效的JSON格式
    Console.WriteLine(fex);
}
catch (Exception ex)
{
    // 其他异常
    Console.WriteLine(ex.ToString());
}</code>
ログイン後にコピー

コードは必要ありません:

小さい JSON 文字列の場合は、JSONLint や JSON2CSharp などのオンライン ツールを使用して、その有効性を検証し、逆シリアル化用のテンプレート クラスを生成できます。

以上がJSON.NET または System.Json を使用して JSON 文字列の有効性を効率的に検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート