我正在尝试从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"];
}
}
但是我收到了这个错误:&#34;无法隐式地将类型&quot; newtonsoft.json.linq.Jtoken转换为byte []。存在显式转换(您是否错过了演员?)&#34;
如何将Newton.Json.Linq.JToken转换为byte []?
谢谢。
答案 0 :(得分:8)
使用JToken
提供的explicit conversion operator:
PDF = (byte [])(string.IsNullOrEmpty(doc["PDF"].ToString()) ? null : doc["PDF"]);
或者,使用ToObject<T>()
:
PDF = (doc["PDF"] == null ? null : doc["PDF"].ToObject<byte []>());