web-dev-qa-db-ja.com

JSON文字列をMVCのJsonResultに変換する

JSONを提供するためのモックサービスを作成しようとしています。静的ファイルに保存されたプレーンなJSON文字列があり、追加のラッパーなしでそれらをそのままクライアントに提供したいと考えています。例えば。 json文字列{"result_code":200,{"name":"John", "lastName": "Doe"}}そして、コンテンツラッパーやデータラッパーなしで、このようにクライアントでjson応答を取得したいと考えています。

データコントラクトを使用し、jsonをC#オブジェクトに逆シリアル化するソリューションがありますが、それは少し複雑で、必要ありません。

ありがとうございました

15
kljuco

これを行うには、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();
        }

    }
}

モックメソッドからJsonResultを返すだけです。

22
Bill

コンテンツを手動で送信することで、静的JSON文字列を返すことができます。

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

それがあなたが求めているものと完全に一致しない場合は申し訳ありません

10
Jedediah