在MVC中将JSON字符串转换为JsonResult

时间:2014-03-27 15:42:54

标签: c# asp.net-mvc json serialization deserialization

我们正在尝试使用模拟服务来提供JSON服务。我们有简单的JSON字符串存储在静态文件中,并且希望按原样将它们提供给客户端,而不需要任何其他包装器。 例如。我们有json字符串{"result_code":200,{"name":"John", "lastName": "Doe"}},我们希望在没有任何Content或Data包装器的情况下在客户端上获取json响应。

我们有解决方案,我们使用数据协定并将json反序列化为C#对象,但这有点复杂,我们并不需要它。

谢谢

2 个答案:

答案 0 :(得分:20)

您可以通过引用System.Web.Mvc来完成此操作。我快速控制台应用程序中的示例:

using System;
using System.Web.Mvc;
using Newtonsoft.Json;

namespace Sandbox
{
    class Program
    {
        private static void Main(string[] args)
        {
            //Added "person" to the JSON so it would deserialize
            var testData = "{\"result_code\":200, \"person\":{\"name\":\"John\", \"lastName\": \"Doe\"}}";

            var result = new JsonResult
            {
                Data = JsonConvert.DeserializeObject(testData)
            };

            Console.WriteLine(result.Data);
            Console.ReadKey();
        }

    }
}

你可以从mock方法返回JsonResult。

答案 1 :(得分:8)

您可以通过手动发送内容来返回静态JSON字符串。

public ActionResult Tester()
{
    return Content("{\"result_code\":200,{\"name\":\"John\", \"lastName\": \"Doe\"}}", "application/json");
}

很抱歉,如果这不是您正在询问的内容