>데이터 베이스 >MySQL 튜토리얼 >C#에서 JSON을 SQL 매개변수에 매핑할 때 비어 있거나 Null JToken을 처리하는 방법은 무엇입니까?

C#에서 JSON을 SQL 매개변수에 매핑할 때 비어 있거나 Null JToken을 처리하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-05 22:35:43722검색

How to Handle Empty or Null JTokens When Mapping JSON to SQL Parameters in C#?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.