Überprüfung auf leeres oder Null-JToken in einem JObject
Beim Durchlaufen der Eigenschaften eines JObjects ist es wichtig, Fälle zu behandeln, in denen eine Eigenschaft könnte fehlen oder einen leeren Wert enthalten. Sehen wir uns ein Szenario an, das häufig beim Zuordnen von JSON-Daten zu SQL-Parametern auftritt.
In Ihrem Code greifen Sie mit item["thisParameter"] auf eine bestimmte Eigenschaft zu. Um zu überprüfen, ob diese Eigenschaft vorhanden ist, können Sie item["thisParameter"].Count nicht verwenden, da es keine Nullsicherheit bietet.
Um festzustellen, ob eine Eigenschaft in einem JObject vorhanden ist, verwenden Sie stattdessen das Quadrat Klammersyntax und prüfen Sie, ob das Ergebnis null ist:
JToken token = item["thisParameter"]; if (token != null) { // Property exists }
Lassen Sie uns nun das Problem der leeren Werte angehen. „Leer“ kann je nach Kontext unterschiedliche Bedeutungen haben. Ein leeres Array (JTokenType.Array) hat beispielsweise keine Elemente, während ein leeres Objekt (JTokenType.Object) keine Eigenschaften hat. Um solche Szenarien zu bewältigen, können Sie eine Erweiterungsmethode wie die folgende erstellen:
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) } }
Mit dieser Erweiterungsmethode können Sie anhand der von Ihnen definierten Kriterien bequem überprüfen, ob ein JToken null oder leer ist.
Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob in einem JObject leere oder Null-JTokens vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!