【发布时间】:2017-06-01 15:11:26
【问题描述】:
我正在尝试使用 JSON.NET 从 JSON 文件反序列化 base64 文件附件。我可以使用以下代码反序列化数据,但我不确定如何解码 base64 文件。请告诉我。
Sample JSON file
-----------------
PostData: {
"Main":{
"date1": "14-JAN-2016",
"summary": "summary test",
"Details":[{
"first": "test",
"last": "last test",
},
]}
"attachments":[ {
"title": "Report1.pdf",
"file_name": "Report1.pdf",
"file_content_type": "application/pdf",
"file_format": "binary",
"file_data": "JVBERi0xLjQNCjUgMCBvYmoNCjw8DQovVHlwZSAvWE9iamVjdA0KL1N1YnR5cGUg
MSAwIFIvSW5mbyAxMjYgMCBSL0lEWzw0NTQ3QjRFREZBNjk2NDQ4QjhBNUU4MUQw
QkU4MkVDMD48NDU0N0I0RURGQTY5NjQ0OEI4QTVFODFEMEJFODJFQzA+XSAvUHJl
diAxMTI3OTI5L1hSZWZTdG0gMTEyNjMxNj4+DQpzdGFydHhyZWYNCjExNDAyNTEN
CiUlRU9G",
},
{
"title": "src.txt",
"file_name": "src.txt",
"file_content_type": "text/plain",
"file_format": "text",
"file_data": "bm5gLDJ9NC1DNFkpN20y4tLmM0",
},
]}
}
程序.cs
var json = System.IO.File.ReadAllText("postData.json");
var myJsonObject = JsonConvert.DeserializeObject<PostData>(json);
public class PostData
{
public Main main { get; set; }
}
public class Main
{
public string date1 { get; set; }
public string summary { get; set; }
public List<Details> details { get; set; }
}
public class Details
{
public string first { get; set; }
public string last { get; set; }
}
【问题讨论】:
-
感谢您的回复。如何根据文件内容类型将反序列化的内容保存到本地驱动器。我在网上没有看到任何示例。
-
您的 JSON 无效。我尝试使用此处显示的结果对其进行清理:pastebin.com/raw/SPxVx4MH。你能确认这是正确的吗?此外,您的第二个
"file_data"、"bm5gLDJ9NC1DNFkpN20y4tLmM0"是无效的 Base64(字符串长度错误)。您是手动编辑这个还是需要反序列化这个真正的 Base64?