サービス層の外部 API から JSON を直接キャプチャし、それを MVC 4 ApiController に返し、その ApiController を介して JSON を出力したいと考えています。他のいくつかのアクション (認証など) を同時に実行する必要があるため、基本的に別の API サービスのラッパーを作成しています。問題は、JSON が文字列に変換され、C# コードで文字列として渡されることです。これは、JSON にエスケープ文字を追加するだけです。とにかく、C# コードで JSON オブジェクトを渡すことができますか? 私の実装の詳細は以下のとおりです。
サービス層では、以下のメソッドで JSON を提供する API を使用しています。
return new WebClient().DownloadString(url);
残念ながら、これは文字列を返します。この API は既に JSON を返しているため、文字列に多くのエスケープ文字が追加されるため、これは問題です。
JSON は次のようになります。
[{"Citation":{"Attachments":[{"AttachedPersonIds":null,..."Type":"Record"}]
しかし、代わりに今はこのように見えます
"[{\"Citation\":{\"Attachments\":[{\"AttachedPersonIds\":null,...\"Type\":\"Record\"}]"
この文字列を取得したら、次のようにいくつかのメソッドを介して ApiController (JSON を返すように設定されています) に返します。
public class HintsController : ApiController
{
public string Get(string treeId, string personId)
{
return _hintService.GetHints(treeId, personId);
}
}
文字列をリテラル文字列に変換しようとし、文字列を再度シリアル化しようとしました。これを行うと、エスケープ文字が追加されるだけで、問題は解決しません。JSONから文字列にキャストしているため、最初の呼び出しをどのように消費しているかに問題があると思います。しかし、これを回避する方法がわかりません。
アイデアをお寄せいただきありがとうございます。