当前位置: 首页 > 面试题库 >

在ASP.NET Core 2.0 Web Api中返回“原始” json

江子石
2023-03-14
问题内容

AFAIK在ASP.NET Core Web
Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果。这对对象很好用,但是如果我以某种方式获得了JSON字符串,而我只想将该JSON返回给调用者怎么办?

例如

public IActionResult GetSomeJSON()
{
    return Ok("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }");
}

ASP.NET Core在这里所做的是,它接收JSON字符串,然后再次将其包装到JSON中(例如,它转义了JSON)

返回纯文本[Produces("text/plain")]确实可以通过提供“
RAW”内容来工作,但是它还将响应的内容类型设置为PLAIN而不是JSON。我们[Produces("application/json")]控制器上使用。

如何在不转义的情况下以普通的JSON内容类型返回JSON?

注意:JSON字符串的获取方式无关紧要,它可以来自第三方服务,也可以有一些特殊的序列化需求,因此我们希望进行自定义序列化,而不是使用默认的JSON.NET序列化器。


问题答案:

当然,在发布问题几分钟后,我偶然发现了一个解决方案:)

只需返回Content内容类型application/json

return Content("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }", "application/json");


 类似资料:
  • 问题内容: 我想构建自己的JSON,并让服务返回一个字符串,这是代码 我得到的响应包含用于在c#中的字符串中创建\的\“。 以下是响应。 值已正确编码,但json本身未正确格式化。这些导致它破烂不堪。 我该如何返回一个字符串,而在’的前面没有\呢? 问题答案: 目前,您的网络方法与一起返回。它遵循字符串的JSON编码。对应于www.json.org,字符串中的所有双引号将使用反斜杠转义。因此,您目

  • 环境 期望的行为 我想更新文档并返回原始文档。 实际行为 正在返回更新的文档,而不是原始文档。 我试过的 起初,我在查看findAndModify: http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findAndModify 然而,那里的文档表示它已被弃用,并使用findOneAndUpdate、findOn

  • 我希望自动将对象序列化为JSON的便利性和返回原始JSON字符串的能力。我正在使用Gson而不是Jackson,因为Gson已经在我的应用程序中有一段时间了,我有现有的调整,转换器,和注释遍布我的应用程序。 我可以自动序列化POJO的: 我希望这也能奏效: 现在的结果是一个转义值: 而不是:

  • 我在spring web应用程序中有以下要求: 从Elasticsearch中查找对象并在谷歌地图上显示(首选json格式) 从Elasticsearch中查找对象(与上面的查询相同),并将其显示在列表中(首选java对象格式,以便在JSP页面上显示) 我使用SearchRequestBuilder编写了Java API搜索,效果很好: 但是为了在谷歌地图上显示它,我更喜欢从elasticsear

  • 注:[2017年1月11日]RestInfoAdapter.java的源代码已经更改和更新(参见下面的第2项) 我一直在尝试通过保留原始输入列表的备份/副本来使我的搜索视图返回到原始列表。但是,它根本不起作用。我的这个问题包括使用自定义类的RecyclerView和ArrayList。 是一个名为<code>RestInfo 我是如何尝试的 适配器类,以便RestInfo可以呈现在卡片视图中(因此

  • 问题内容: 如果将来我使用setMaxAge()设置cookie,那么当我在后续请求中将cookie读回内存时,getMaxAge()会返回-1。我已经通过Chrome的设置和检查器检查了实际的cookie,并且可以验证该过期日期确实设置为将来的60天。 为什么c.getMaxAge()总是返回-1? 问题答案: 浏览器不会发送cookie属性,例如路径和过期。它仅将名称和值发送回去。如果最大期限