You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core控制器如何将字符串返回值格式化为合法JSON?

解决ASP.NET Core控制器字符串返回值自动序列化为JSON的问题

你可以通过以下几种方式让字符串返回值以JSON格式输出(Content-Type为application/json):

方法一:返回JsonResult

这是最简便的实现方式,直接用框架提供的Json()方法包裹字符串:

[HttpPost]
[Route("[action]")]
public JsonResult GetString()
{
    return Json("abc");
}

这种写法会自动把字符串序列化为带双引号的JSON格式,响应头的Content-Type也会被设置为application/json。

方法二:包装成非原始类型

利用框架对复杂类型自动JSON序列化的特性,把字符串包装成匿名对象或自定义类:

[HttpPost]
[Route("[action]")]
public object GetString()
{
    return new { Value = "abc" };
}

返回结果会是{"Value":"abc"},完全符合JSON格式规范。

方法三:手动构建ContentResult

如果需要更精细地控制响应内容,可以手动创建ContentResult,指定正确的Content-Type并格式化字符串:

[HttpPost]
[Route("[action]")]
public ContentResult GetString()
{
    return new ContentResult
    {
        Content = "\"abc\"", // 手动添加JSON字符串要求的双引号
        ContentType = "application/json",
        StatusCode = StatusCodes.Status200OK
    };
}

补充说明

ASP.NET Core默认对string这类原始类型使用StringOutputFormatter处理,输出text/plain格式;而复杂类型则会触发JSON格式化器(如SystemTextJsonOutputFormatter)处理,这就是非原始类型能自动返回JSON的原因。

内容的提问来源于stack exchange,提问作者Wolf Donner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 11:37:07