web-dev-qa-db-fra.com

Convertir une chaîne JSON en JsonResult dans MVC

Nous essayons de faire un service simulé pour servir JSON. Nous avons des chaînes JSON simples stockées dans des fichiers statiques et voulons les servir au client telles qu'elles sont, sans wrappers supplémentaires. Par exemple. nous avons la chaîne json {"result_code":200,{"name":"John", "lastName": "Doe"}} et nous voulons obtenir une réponse json sur le client comme ceci sans aucun wrapper de contenu ou de données.

Nous avons une solution où nous utilisons des contrats de données et désérialisons json en objets C #, mais c'est un peu compliqué et nous n'en avons pas besoin.

Je vous remercie

15
kljuco

Vous pouvez le faire en référençant System.Web.Mvc. Exemple dans une application de console rapide que j'ai jeté ensemble:

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();
        }

    }
}

Vous pouvez simplement renvoyer le JsonResult à partir de la méthode fictive.

22
Bill

Vous pouvez renvoyer une chaîne JSON statique en envoyant le contenu manuellement.

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

Désolé si ce n'est pas exactement ce que vous demandez

10
Jedediah