0

json オブジェクトを表す非常に複雑な文字列があります。これを何らかの形式に変換して、MVC コントローラーで JsonResult として返すことができるようにする必要があります。

string result = "[
{
    ""TagGroupName"": ""group1"",
    ""Tags"": [
        {
            ""TagName"": ""G1tag1""
        },
        {
            ""TagName"": ""G1tag2""
        },
        {
            ""TagName"": ""G1tag3""
        }
    ]
},
{
    ""TagGroupName"": ""group2"",
    ""Tags"": [
        {
            ""TagName"": ""G2tag1""
        },
        {
            ""TagName"": ""G2tag2""
        }
    ]
}
]";

この文字列は動的に構築されます。

私が正しい軌道に乗っているかどうかはわかりませんが、これを NewtonSoft を使用して "JObject" に解析しましたが、この文字列を JsonResult 型 (Jquery によって Json オブジェクトとして認識される必要があります) に変換する必要もあります。

4

1 に答える 1

5

すでに文字列があるので、JsonResult を返す必要はありません。JsonResult は、基本的にオブジェクトを JSON に変換します。

ContentResult でそれを返すだけで、正しいコンテンツ タイプを指定できます。

string result = @"[{ ""TagGroupName"": ""group1"", ""Tags"": [{""TagName"":""G1tag1""},{""TagName"":""G1tag2""},{""TagName"":""G1tag3""}]}, { ""TagGroupName"": ""group2"", ""Tags"": [{""TagName"":""G2tag1""},{""TagName"":""G2tag2""}]}]";

return new ContentResult { Content = result, ContentType = "application/json" };

Action メソッド ActionResult を戻り値の型として指定するだけで動作するはずです

于 2013-04-28T22:36:15.483 に答える