web-dev-qa-db-ja.com

MVC4でJson文字列をJsonResultとして出力する方法は?

これは非常に単純なように思えるので、考え直しが必要です。

TL; DR;

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

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

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

"{ success: "true" }"

ただし、文字列に含まれるJSONを返すようにします。

{ success: "true" }

少し長いバージョン

私はいくつかの外部API呼び出しのプロトタイプをすばやく作成しようとしていますが、現時点では、これらの結果を偽の応答として「api」に渡したいだけです。 jsonオブジェクトは簡単ではありません-10,000の "行"または90KB程度です。デシリアライザーを介して実行できるように、この1つのjson応答のすべてのコンテンツに対して厳密に型指定されたオブジェクトを作成する必要はありません。

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

  1. 外部APIを呼び出す
  2. Webリクエストの文字列結果をvarに保存します(上記のjson_stringを参照)
  3. メソッドJson()を生成するJsonResultを使用して、これらの結果を(文字列ではなく)jsonとして出力します

どんな助けも大歓迎です...心は溶けています。

27
longda

Json()ヘルパーメソッドのポイントは、JSONとしてシリアル化することです。

生のコンテンツを返したい場合は、直接行います:

return Content(jsonString, "application/json");
47
SLaks
public ActionResult Test()
{
  return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}
43