【问题标题】:Deserialize the json and extract the pdf from it?反序列化json并从中提取pdf?
【发布时间】:2018-03-15 10:17:32
【问题描述】:

我收到的 JSON 响应:

{
    "status": "success",
    "data": [
        [
            {
                "pdfString": "JVBERi0xLjcKJeLjz9M"
            }
        ]
    ],
    "msg": "Data Successfully Retrived"
}

读取 json 的代码

var responseText = streamReader.ReadToEnd();
Example1 dat = (Example1)JsonConvert.DeserializeObject(responseText, typeof(Example1));
if (dat.status == "success")
{

    string pdfString = dat.data[0][0].value;

    Response.AddHeader("Content-Type", "application/pdf");
    Response.AddHeader("Content-Length", pdfString.Length.ToString());
    Response.AddHeader("Content-Disposition", "inline;");
    Response.AddHeader("Cache-Control", "private, max-age=0, must-revalidate");
    Response.AddHeader("Pragma", "public");
    Response.BinaryWrite(Convert.FromBase64String(pdfString));

}

型号

public class Example1
{
    public string status { get; set; }
    public List<List<Datum>> data { get; set; }
    public string msg { get; set; }
}

public class Datum
{
    public string value { get; set; }
    public string key { get; set; }
}

我已经编写了读取 JSON 格式和类的代码我如何读取 pdfstring 值。

我想在阅读后将其转换为 PDF。在这里我面临如何阅读它的问题?

【问题讨论】:

  • 不是答案,但内容长度将是字节数,而不是 Base64 的长度。
  • 使用 JSON.NET 反序列化 json 结果。请进一步解释有关pdf的信息;你是把它作为指向该位置的链接,还是代表它的二进制文件。
  • 我认为this 可以帮助你是不是错了?
  • @Fabulous 我已经在使用相同的
  • 请详细说明“问题如何阅读”。会发生什么不是你想要的?

标签: c# json


【解决方案1】:

您得到一个空值,因为您的模型与 JSON 不匹配。
你需要一个字典来处理键值对而不是Datum

public class Example1
{
    public string status { get; set; }
    public List<List<Dictionary<string, string>>> data { get; set; }
    public string msg { get; set; }
}

反序列化为Example1后,你可以像这样检索pdfString

string pdfString = dat.data[0][0]["pdfString"];

小提琴:https://dotnetfiddle.net/3mnnNs

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 2013-07-09
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多