2016-04-05 7 views
0

私は現在、いくつかの当社のウェブサイトで使用されているC#APIを持っています。私のAPIにはJSONリクエストが送信され、そのリクエストの詳細に基づいていくつかの処理が行われ、APIの処理の結果を含むJSON応答とその他の情報が送信されます。URLからファイルを読み取り、JSONレスポンスのために変換する

JSONレスポンスにいくつかの追加情報を含める必要があります。

特定のURLからファイルを読み込む必要があります(このファイルはイメージ、MSワードのdoc、PDFなどです)。

私はすでにこのファイルのMIMEタイプを知っています(これは、私が処理するかどうかを判断するためのものです)。

サポートされているファイル/ MIMEタイプの場合、指定したURLからこのファイルを取得し、最終的にJSONに変換/シリアル化してJSONレスポンスに含めたいとします。

実際には、JSONレスポンス内に(理想的には、配列として「添付ファイル」という名前の)添付ファイルを取得、変換、含める必要があるファイルやURLが複数ある場合があります。

私はNewtonsoft.Jsonを使用して、以前は通常のプロパティでクラスをシリアライズおよびデシリアライズしていましたが、ファイルを読み込んでJSONとして送信することはできませんでしたし、これについての明確な例は見つかりません。

+0

どのようにしてPDFをJSONに変換しますか? JSONオブジェクトにファイルのコンテンツを含めることを意味しますか?その後、base64でエンコードします。 – CodeCaster

+0

@marcusstarnesファイルはクロスドメインまたは同じドメインにあります –

+0

@HeemanshuBhallaファイルは常に(私たちのアマゾンクラウドストレージ内の)別のドメインに置かれます。 – marcusstarnes

答えて

0

ファイルデータをバイト配列として考えます。その後、データ転送オブジェクトを使用してJSONでシリアル化できます。

public class YourTDO { 

    ...some other properties... 

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

ファイルを外部ソースからバイト配列として読み込み、FileDataプロパティを割り当て、通常どおりにオブジェクトをシリアル化します。

0

APIを使用してファイルを直接処理し、JSONで識別子を指定するだけで済みます。静的コンテンツ(静的なものであると仮定して、あなたのPDFなどを想定している)に応じて、ファイルをAWSでホストし、その識別子をファイルへの一意のリンクにすることもできます。

ほとんどの場合、JSONオブジェクトは、あなたが渡している何らかのオブジェクトです。場合によっては、同じファイルを参照することもあります。コンテンツの配信を分離することで、パフォーマンスを監視し調整することができます。

関連する問題