如何把Newton.Json.Linq.JToken转换成byte []?

afo*_*alv 5 c# linq json json.net

我试图从Jtoken中检索一个字节数组:

byte[] PDF;
var results = JsonConvert.DeserializeObject<dynamic>(jsonData);
if (results != null)
{
    JArray docList = (JArray)results.SelectToken("");
    foreach (JToken doc in docList)
    {
         PDF = string.IsNullOrEmpty(doc["PDF"].ToString()) ? null : doc["PDF"];
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到这个错误:"不能隐式地将类型'newtonsoft.json.linq.Jtoken转换为byte [].存在显式转换(你是否错过了转换?)"

如何将Newton.Json.Linq.JToken转换为byte []?

谢谢.

dbc*_*dbc 8

使用显式转换操作符提供JToken:

PDF = (byte [])(string.IsNullOrEmpty(doc["PDF"].ToString()) ? null : doc["PDF"]);
Run Code Online (Sandbox Code Playgroud)

或者,使用ToObject<T>():

PDF = (doc["PDF"] == null ? null : doc["PDF"].ToObject<byte []>());
Run Code Online (Sandbox Code Playgroud)