【问题标题】:Message "can't parse JSON. Raw result:" added to response body消息“无法解析 JSON。原始结果:”添加到响应正文
【发布时间】:2018-01-09 01:03:17
【问题描述】:

我正在尝试使用 OpenAPI 规范 (v3) 定义文件下载端点。我面临两个问题。 1)文件没有被下载 2) 在 swagger-ui 中,响应正文显示不是由服务器生成的消息(即无法解析 JSON。原始结果:"

有人知道我做错了什么吗?

YAML 代码快照:

在 AWS 服务器上运行的 swagger-ui 的输出结果。

【问题讨论】:

标签: swagger-ui openapi


【解决方案1】:

有人告诉我,异常消息的原因是因为 application/json 是据说要在服务器响应标头中返回的内容媒体。请参阅此处的标题:

响应实际上是一个文本文件——不是 JSON。发送服务器配置错误。 Swagger-UI 运行时响应处理程序确定响应是否有效。所以 Swagger-UI 输出“无法解析 JSON...”消息。

由于该错误,没有执行输出到浏览器本地存储功能。

更多详情,请参考 Swagger-UI 问题#4098

【讨论】:

  • 一个简单的字符串是一个有效的 json,你可以在这里验证它jsonlint.com。所以swagger应该可以解析出这样一个响应,也就是一个内容类型为application/json的String。我错了吗?
【解决方案2】:

试试这个。

   services.AddMvc(config => {
        }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
          .AddJsonOptions(options => {
              options.SerializerSettings.DateFormatString = "yyyy-MM-ddTHH:mm:ssZ";
              options.SerializerSettings.Formatting = Formatting.Indented;
              options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
              options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
          });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 2021-09-24
    • 1970-01-01
    • 2018-06-19
    • 2021-06-02
    • 2016-06-05
    相关资源
    最近更新 更多