How to convert from Newton.Json.Linq.JToken to byte []?

I am trying to get an array of bytes from a 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"];
    }
}

But I get this error: "cannot implicitly convert the type" newtonsoft.json.linq.Jtoken to byte []. An explicit conversion exists (are you skipping listing?) "

How can I convert Newton.Json.Linq.JToken to byte []?

Thank.

+4
source share
1 answer

Use the explicit conversion operator provided for JToken:

PDF = (byte [])(string.IsNullOrEmpty(doc["PDF"].ToString()) ? null : doc["PDF"]);

Or use ToObject<T>():

PDF = (doc["PDF"] == null ? null : doc["PDF"].ToObject<byte []>());
+5
source

Source: https://habr.com/ru/post/1649536/


All Articles