【问题标题】:How to convert from Newton.Json.Linq.JToken to byte[]?如何从 Newton.Json.Linq.JToken 转换为 byte[]?
【发布时间】:2016-12-04 05:41:47
【问题描述】:

我正在尝试从 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"];
    }
}

但我收到此错误:“无法将类型 'newtonsoft.json.linq.Jtoken 隐式转换为 byte[]。存在显式转换(您是否缺少演员表?)”

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

谢谢。

【问题讨论】:

    标签: c# json linq json.net


    【解决方案1】:

    使用为JToken 提供的explicit conversion operator

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

    或者,使用ToObject&lt;T&gt;()

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

    【讨论】:

    • 谢谢 :) 我知道这会很简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2018-03-25
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多