집 >데이터 베이스 >MySQL 튜토리얼 >C#에서 JSON을 SQL 매개변수에 매핑할 때 비어 있거나 Null JToken을 처리하는 방법은 무엇입니까?
JObject에서 비어 있거나 Null JToken 확인
문제:
C#에서 응용 프로그램에서 다음 코드는 JObject의 JArray를 반복하고 SQL 매개변수에 값을 할당하려고 시도합니다. JTokenToSql 메소드를 사용합니다. 그러나 JObject의 속성이 비어 있거나 null인 경우 JTokenToSql 메서드가 예상대로 작동하지 않습니다.
JArray clients = (JArray)clientsParsed["objects"]; foreach (JObject item in clients.Children()) { command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]); }
JTokenToSql은 다음과 같이 정의됩니다.
public static object JTokenToSql(JToken obj) { if (obj.Any()) return (object)obj; else return (object)DBNull.Value; }
해결책:
JObject에 속성이 존재하는지 확인하려면 다음을 사용하세요. 대괄호 구문을 사용하여 결과가 null인지 확인하세요. 속성이 존재하는 경우 해당 값이 JSON에서 null인 경우에도 JToken이 반환됩니다.
JToken token = jObject["param"]; if (token != null) { // the "param" property exists }
JToken이 비어 있지 않은지 확인하려면 다음과 같은 확장 메서드를 사용하는 것이 좋습니다.
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) } }
토큰이 null이거나 비어 있거나 정의되지 않은 유형인 경우 이 메서드는 true를 반환합니다.
위 내용은 C#에서 JSON을 SQL 매개변수에 매핑할 때 비어 있거나 Null JToken을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!