Saya memiliki yang berikut ...
JArray clients = (JArray)clientsParsed["objects"];
foreach (JObject item in clients.Children())
{
// etc.. SQL params stuff...
command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}
JTokenToSql
terlihat seperti ini...
public static object JTokenToSql(JToken obj)
{
if (obj.Any())
return (object)obj;
else
return (object)DBNull.Value;
}
Saya juga sudah mencoba ((JObject)obj).Count
.. Tapi sepertinya tidak berhasil.
ToSrting
yangJToken
dan periksaIsNullOrWhiteSpace
? (Setelah memeriksaJToken
tentu saja tidak null){}
dan[]
masing - masing.Anda dapat melanjutkan sebagai berikut untuk memeriksa apakah Nilai JToken adalah null
JToken token = jObject["key"]; if(token.Type == JTokenType.Null) { // Do your logic }
sumber
Ada juga tipe - JTokenType.Undefined.
Cek ini harus dimasukkan dalam jawaban @Brian Rogers.
token.Type == JTokenType.Undefined
sumber
Mulai C # 7 Anda juga bisa menggunakan ini:
if (clientsParsed["objects"] is JArray clients) { foreach (JObject item in clients.Children()) { if (item["thisParameter"] as JToken itemToken) { command.Parameters["@MyParameter"].Value = JTokenToSql(itemToken); } } }
Operator is memeriksa Jenis dan jika mengoreksi Nilai ada di dalam variabel klien.
sumber
Coba sesuatu seperti ini untuk mengonversi JToken ke 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 }
sumber