J'ai ce qui suit ...
JArray clients = (JArray)clientsParsed["objects"];
foreach (JObject item in clients.Children())
{
// etc.. SQL params stuff...
command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}
JTokenToSql
ressemble à ça...
public static object JTokenToSql(JToken obj)
{
if (obj.Any())
return (object)obj;
else
return (object)DBNull.Value;
}
J'ai essayé ((JObject)obj).Count
aussi .. Mais ne semble pas fonctionner.
ToSrting
leJToken
et vérifierIsNullOrWhiteSpace
? (Après avoir vérifié leJToken
n'est pas nul bien sûr){}
et[]
.Vous pouvez procéder comme suit pour vérifier si une valeur JToken est nulle
JToken token = jObject["key"]; if(token.Type == JTokenType.Null) { // Do your logic }
la source
Il existe également un type - JTokenType.Undefined.
Ce chèque doit être inclus dans la réponse @Brian Rogers.
token.Type == JTokenType.Undefined
la source
À partir de C # 7, vous pouvez également utiliser ceci:
if (clientsParsed["objects"] is JArray clients) { foreach (JObject item in clients.Children()) { if (item["thisParameter"] as JToken itemToken) { command.Parameters["@MyParameter"].Value = JTokenToSql(itemToken); } } }
L'opérateur is vérifie le type et s'il corrige la valeur se trouve à l'intérieur de la variable clients.
la source
Essayez quelque chose comme ceci pour convertir JToken en JArray:
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 }
la source