2013-08-23 17 views
21

これはとてもシンプルなように思えます。Jsonの文字列をMVC4のJsonResultとして出力するには?

TL; DR;

jsonを含む文字列ではなく、文字列に含まれるjsonオブジェクトを返すように、以下のコードを変更するにはどうすればよいですか?

public ActionResult Test() 
{ 
    var json_string = "{ success: \"true\" }"; 
    return Json(json_string, JsonRequestBehavior.AllowGet); 
} 

このコードは、JSONを含む文字列リテラルを返します。少し長く

{ success: "true" } 

"{ success: "true" }" 

しかし、私はそれが文字列に含まれているJSONを返したいのですがバージョン

私はすぐにprototyしようとしていますpeいくつかの外部APIが呼び出され、その結果を私の "api"を通して偽の応答として渡すだけです。 jsonオブジェクトは、10,000行( "lines"または90KB)のオーダーのものです。私はこの1つのjsonレスポンスのすべての内容に対して強く型付けされたオブジェクトを作成したくないので、デシリアライザを介して実行できます。

だから私のコントローラでの基本的なロジックは次のとおりです。

  1. コールexternall APIのVARへのWeb要求の
  2. ストア文字列の結果(上記json_string参照)
  3. 出力JSONとしてそれらの結果(ではありませんJsonResultメソッドを使用してJsonResultメソッドを作成します。Json()

何か助けが大いにありがたいです...心が溶けています。

+0

をちょうど私自身の質問の「関連」の質問のサイドバーで答えを見つけました/ 3991940/298758 **この質問(私)はほぼ重複しています** – longda

答えて

37

Json()ヘルパーメソッドの要点は、JSONとしてシリアル化することです。あなたは、生のコンテンツを返すようにしたい場合は

、直接それを行う:http://stackoverflow.com/a:

return Content(jsonString, "application/json"); 
+0

ありがとう!これは動作します!それを考えすぎたのか。 :D – longda

40
public ActionResult Test() 
{ 
    return Json(new { success = true }, JsonRequestBehavior.AllowGet); 
} 
+3

これは私が探しているものです。 thanks –

+3

ActionResultの代わりにJsonResultを戻り値の型として設定できます。 – Spilarix

関連する問題