JObject 内の空または Null JToken の確認
JObject のプロパティを反復処理する場合、プロパティが欠落しているか、空の値が含まれている可能性があります。 JSON データを SQL パラメーターにマッピングするときによく発生するシナリオを調べてみましょう。
コードでは、item["thisParameter"] を使用して特定のプロパティにアクセスします。このプロパティが存在するかどうかを確認するには、 item["thisParameter"].Count を使用できません。これは null 安全性を提供しないためです。
代わりに、JObject にプロパティが存在するかどうかを確認するには、四角形を使用します。
JToken token = item["thisParameter"]; if (token != null) { // Property exists }
次に、空の値の問題に対処しましょう。 「空」は文脈に応じてさまざまな意味を持ちます。たとえば、空の配列 (JTokenType.Array) には要素がありませんが、空のオブジェクト (JTokenType.Object) にはプロパティがありません。このようなシナリオに対処するには、次のような拡張メソッドを作成できます:
public static class JsonExtensions { public static bool IsNullOrEmpty(this JToken token) { return (token == null) || (token.Type == JTokenType.Array && !token.HasValues) || (token.Type == JTokenType.Object && !token.HasValues) || (token.Type == JTokenType.String && token.ToString() == String.Empty) || (token.Type == JTokenType.Null) || (token.Type == JTokenType.Undefined) } }
この拡張メソッドを使用すると、定義した基準に基づいて JToken が null か空かどうかを簡単にチェックできます。
以上がJObject 内の空の JToken または Null の JToken を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。