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

klj*_*uco 12 c# asp.net-mvc serialization json deserialization

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

我们有解决方案,我们使用数据契约和反序列化json到C#对象,但这有点复杂,我们不需要它.

谢谢

Bil*_*ill 21

您可以通过引用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();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

你可以从mock方法返回JsonResult.

  • 不好的建议,这需要反序列化并重新序列化要返回的对象。 (2认同)

Jed*_*iah 9

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

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

对不起,如果那不是你要问的那个