从URL读取文件并转换为JSON响应

时间:2016-04-05 10:00:42

标签: c# .net json serialization json.net

我有一个C#API,目前我们的许多网站都在使用它。我的API发送了一个JSON请求,我根据该请求中的详细信息做了一些事情,然后发送了一个JSON响应,其中包含API工作的结果以及其他一些信息。

我现在需要在我的JSON响应中包含一些额外的信息。

我需要从特定的Url中读取文件(此文件可能是图像,MS Word文档,PDF等等 - 可能是真的。)

我已经在网址上知道了这个文件的mime类型(以便确定它是否对我有效处理)。

如果它是受支持的文件/ mime类型,我想从指定的URL检索此文件,并最终将其/序列化为JSON并将其包含在我的JSON响应中。

在某些情况下,我可能实际上有多个文件/网址需要检索,转换并包含在我的JSON响应中(理想情况下是一个数组,在名为'附件'的属性中)。

我之前使用过Newtonsoft.Json来序列化和反序列化具有常规属性的类,但是没有通过读取文件并将它们作为JSON发送来做任何事情,并且无法找到任何明确的示例关于这个。

2 个答案:

答案 0 :(得分:0)

将文件数据视为字节数组。然后,它可以使用您的数据传输对象以JSON序列化。

public class YourTDO {

    ...some other properties...

    public byte[] FileData { get; set; }
}

从外部源读取文件作为字节数组,分配FileData属性并像往常一样序列化对象。

答案 1 :(得分:0)

您可以使用API​​直接提供文件,并仅在JSON中提供标识符。根据您尝试对静态内容执行的操作(假设您的PDF等是静态的),您还可以在AWS上托管文件,并将identiefier作为文件的唯一链接。

在大多数情况下,JSON对象是您传递的某种对象,在某些情况下,您可能会引用相同的文件。分离内容交付还可以让您更好地监控和调整性能。