Подтвердить что ты не робот

Как вывести строку Json как JsonResult в MVC4?

Это кажется таким простым, что я должен передумать.

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 строк или 90 КБ. Я не хочу создавать строго типизированные объекты для всего содержимого этого одного json-ответа, чтобы я мог запускать его через десериализатор - так что это не так.

Итак, основная логика моего контроллера:

  • Вызов externall api
  • Сохраните результат строки веб-запроса в var (см. json_string выше)
  • Выведите эти результаты как json (а не строку) с использованием JsonResult-метода Json()

Любая помощь очень ценится... ум тает.

4b9b3361

Ответ 1

Вся цель вспомогательного метода Json() заключается в сериализации как JSON.

Если вы хотите вернуть исходный контент, сделайте это напрямую:

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

Ответ 2

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