2016-04-25 13 views
3

私のC#プロジェクトでは、正しくない可能性があるJSONを逆シリアル化する機会があります。したがって、エラーが発生する可能性があります。現時点では、tryブロックでラップしており、nullを返すことで例外をキャッチしています。これはうまくいきますが、最初に例外をスローしないようにライブラリに指示する方が良いでしょう。それは可能ですか?エラー時に例外をスローせずにJSONを解析しますか?

私の現在のコード:

public static NodeModel FromJsonString(string json) 
{ 
    NodeModel r = null; 
    JsonConverter converter = JsonConverters.ReferenceHierarchyCreation; 
    try 
    { 
    r = JsonConvert.DeserializeObject<NodeModel>(json, converter); 
    } 
    catch 
    { 
    } 
    return r; 
} 
+0

このパラメータを渡した場合、無効なJSONと有効なJSON文字列( '' null ''をデシリアライズしようとしていた場合)を返す '' null 'の違いを教えてください。あなたがやっていることはおそらくあなたができることです。それは、あなたが "null"と "this:"ではなく、有効な[json'は同じように扱われるべきであるという決定を下すことができるからです。 –

答えて

3

持つメソッドのないTryParseグループはありません

に例外をスローしないライブラリを伝えるために最初の場所よりよいだろうJSONの解析。あなたが今持っているものはおそらくあなたができることです。

もう1つのオプションはvalidate your JSON against a Schemaで、JSONが有効な場合のみ解析します。

追加するだけで、実際の例外をキャッチしてどこかにログするのが唯一の方法ですが、解析よりも例外を無視して解析することに興味があれば十分です。

関連する問題