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



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

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

我需要从一个特定的Url中读取一个文件(这个文件可能是一个图像、一个MS word文档、一个PDF等——可能是任何东西)。

我已经知道url中这个文件的mime类型(以便确定它是否对我有效)。

如果它是支持的file/mime类型,我希望从指定的url中检索该文件,并最终将其转换/序列化为JSON,并将其包含在我的JSON响应中。

在某些情况下,我实际上可能有多个文件/URL,需要检索、转换并包含在JSON响应中(理想情况下,作为一个数组,位于名为"Attachments"的属性中)。

我以前曾使用Newtonsoft.Json对具有常规属性的类进行序列化和反序列化,但在读取文件并将其作为Json发送方面没有做任何工作,也找不到任何明确的示例来说明如何做到这一点。

将文件数据视为字节数组。然后,它可以与数据传输对象一起在JSON中序列化。

public class YourTDO {
    ...some other properties...
    public byte[] FileData { get; set; }
}

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

您可以使用API直接为文件提供服务,并且只在JSON中提供标识符。根据你试图对静态内容做什么(假设你的PDF等是静态的),你也可以在AWS上托管文件,并使标识符成为文件的唯一链接。

在大多数情况下,JSON对象是您传递的某种对象,在某些情况下,您可能会引用相同的文件。分离内容交付也为您提供了更好的机会来监控和调整性能。

相关内容

  • 没有找到相关文章

最新更新