Java 应用程序\u流\u JSON\u值和应用程序\u NDJSON\u值之间的差异

Java 应用程序\u流\u JSON\u值和应用程序\u NDJSON\u值之间的差异,java,reactive-programming,spring-webflux,reactive,Java,Reactive Programming,Spring Webflux,Reactive,在使用Spring5反应式API时,我遇到了不推荐使用的MediaType应用程序_STREAM_JSON_VALUE,当使用它时,它以流的方式显示来自GetREST端点的值,即在浏览器上显示值。但到今天为止,文档声明它已被文档中的以下文本中的应用程序值替换: 应用程序\u流\u JSON\u值已弃用。自5.3起 源于W3C活动流规范,该规范具有 更具体的目的,并已被一个不同的 mime类型。使用应用程序作为替换或任何其他 行分隔的JSON格式(例如JSON行、JSON文本序列) 当我检查Med

在使用Spring5反应式API时,我遇到了不推荐使用的MediaType应用程序_STREAM_JSON_VALUE,当使用它时,它以流的方式显示来自GetREST端点的值,即在浏览器上显示值。但到今天为止,文档声明它已被文档中的以下文本中的应用程序值替换:

应用程序\u流\u JSON\u值已弃用。自5.3起 源于W3C活动流规范,该规范具有 更具体的目的,并已被一个不同的 mime类型。使用应用程序作为替换或任何其他 行分隔的JSON格式(例如JSON行、JSON文本序列)

当我检查MediaType应用程序\u NDJSON_值的行为时,我发现当在浏览器上使用GET API时,结果会作为文件下载,而不是在浏览器上实时流式传输,您可以稍后查看。但这会影响流媒体行为吗?还是完全一样?应用程序的JSON值是否也带来了其他意义,或者它只是应用程序的JSON值的纯粹替代品。如果它只是一个替代品,为什么浏览器的流行为会变成下载流量的结果呢?或者让我知道我在尝试复制准确行为时是否犯了任何错误

但这会影响流媒体行为吗?还是完全一样

完全一样。contenttype头只是告诉客户端它所服务的内容的类型,仅此而已。浏览器将尽最大努力查看该标题,并确定是内联显示还是下载,但这只是一个“最佳猜测”,尤其是在诸如换行符分隔的JSON等合理的新标准的情况下。实际上,无论如何,你都不会在浏览器中打开它(而是将其作为API使用),所以这其实没什么大不了的


如果你真的不需要在浏览器中下载,你可以尝试添加一个
内容配置:inline
标题-但就我个人而言,我会忽略浏览器的行为,而使用一个更适合工作的工具(比如curl)来使用它。

嘿@Michael,谢谢你的明确解释。那有帮助!!