[SQL] 하는 jobject에 빈 또는 null JToken에 대한 확인
SQL하는 jobject에 빈 또는 null JToken에 대한 확인
나는 다음과 같은이 ...
JArray clients = (JArray)clientsParsed["objects"];
foreach (JObject item in clients.Children())
{
// etc.. SQL params stuff...
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) OBJ) .Count도 .. 그러나 작동하지 않는 것 같습니다.
해결법
-
==============================
1.속성이하는 jobject에 존재하는지 여부를 확인하려면, 당신은 대괄호 구문을 사용하고 그 결과가 null인지 여부를 확인할 수 있습니다. 속성이 존재하는 경우 JToken 항상 (는 JSON에 null 값이있는 경우에도) 반환됩니다.
속성이하는 jobject에 존재하는지 여부를 확인하려면, 당신은 대괄호 구문을 사용하고 그 결과가 null인지 여부를 확인할 수 있습니다. 속성이 존재하는 경우 JToken 항상 (는 JSON에 null 값이있는 경우에도) 반환됩니다.
JToken token = jObject["param"]; if (token != null) { // the "param" property exists }
당신은 손에 JToken을하고 그것이 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); } }
-
==============================
2.JToken 값이 null인지 여부를 확인하기 위해 다음과 같이 진행할 수 있습니다
JToken 값이 null인지 여부를 확인하기 위해 다음과 같이 진행할 수 있습니다
JToken token = jObject["key"]; if(token.Type == JTokenType.Null) { // Do your logic }
-
==============================
3.JTokenType.Undefined - 유형도 있습니다.
JTokenType.Undefined - 유형도 있습니다.
이 검사는 @ 브라이언 로저스 응답에 포함되어야합니다.
token.Type == JTokenType.Undefined
-
==============================
4.C의로 # 7 당신은이를 사용할 수 있습니다 :
C의로 # 7 당신은이를 사용할 수 있습니다 :
if (clientsParsed["objects"] is JArray clients) { foreach (JObject item in clients.Children()) { if (item["thisParameter"] as JToken itemToken) { command.Parameters["@MyParameter"].Value = JTokenToSql(itemToken); } } }
is 연산자 검사 유형과 그 해결되면 값은 클라이언트 변수 안에 있습니다.
-
==============================
5.는 jarray에 JToken을 변환하려면이 같은 시도 :
는 jarray에 JToken을 변환하려면이 같은 시도 :
static public JArray convertToJArray(JToken obj) { // if ((obj).Type == JTokenType.Null) --> You can check if it's null here if ((obj).Type == JTokenType.Array) return (JArray)(obj); else return new JArray(); // this will return an empty JArray }
from https://stackoverflow.com/questions/24066400/checking-for-empty-or-null-jtoken-in-a-jobject by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL 쿼리에서 처음이자 마지막 기록을 얻으려면? (0) | 2020.06.24 |
---|---|
[SQL] 데이터베이스에이 개 분야에 대한 별개의 SQL (0) | 2020.06.24 |
[SQL] .NET에 대한 데이터베이스를 내장 (0) | 2020.06.24 |
[SQL] 일반 LINQ 쿼리의 조건? (0) | 2020.06.24 |
[SQL] 안드로이드에 SQLite 데이터베이스에 ArrayList에 저장 (0) | 2020.06.24 |