我从webservice获取一个json如何反序列化json并从中提取pdf?

时间:2018-03-15 10:17:33

标签: c# json

我收到的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。我正面临着如何阅读它的问题。

1 个答案:

答案 0 :(得分:0)

由于模型与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