当前位置: 首页 > 知识库问答 >
问题:

使用fetch时,如何将响应主体从application/x-ndjson转换为application/json?

索锐藻
2023-03-14

我在试用Lichess API我试图导出用户的游戏。根据留档我可以收到PGN或ndjson作为响应。

现在这不管用:

const api_url = "https://lichess.org/api/games/user/Terinieks?max=5&since=1578607200000&perfType=bullet"

async function getData() {
   let response = await fetch(api_url, {
      headers: {
         "Accept": "application/x-ndjson"
      }
   });
   let data = await response.json();
}
getData()

我正在努力寻找如何使等待响应。json()work。

因为据我所知,我现在需要以某种方式将我的响应(在ndjson中)转换为json,但是如何转换呢?

我正在尝试使用NPM包“can ndjson stream”,这是文章中建议的:使用Fetch()和ndjson流式传输数据

在app.js我有导入ndjsonStream从can-ndjson-stream;但我得到错误:

module "c:/Users/Juris/Desktop/Chess Stats/node_modules/can-ndjson-stream/can-ndjson-stream"

Could not find a declaration file for module 'can-ndjson-stream'.
'c:/Users/Juris/Desktop/Chess Stats/node_modules/can-ndjson-stream/
can-ndjson-stream.js' implicitly has an 'any' type.

  Try npm install @types/can-ndjson-stream if it exists 
or add a new declaration (.d.ts) file containing
declare module 'can-ndjson-stream';ts(7016)

Chrome这个错误:

Uncaught TypeError:解析模块说明符“can-ndjson-stream”失败。相对引用必须以“/”、“/”或“./”开头

指数html有

不确定如何使导入语句正确工作。


共有1个答案

冀弘厚
2023-03-14

由于ndjson实际上是JSON行的集合,因此,通过\n字符分隔,您应该能够通过更改这一行来获得结果:

let data = await response.json();

到:

let data = (await response.text()).match(/.+/g).map(JSON.parse);

NB:/. /g匹配非空行。

 类似资料:
  • 我通过扩展改型回调生成了类。我想将响应解析为字符串。在我的例子中,每个响应都得到这种类型的JSON对象。在成功回应的情况下: 万一发生故障响应 如何将响应体转换为JsonObject,以便检查字段“success”:并在成功时导航各自方法--onResponseSuccess(Call Call,response response);在失败时导航onResponseFailure(Call Cal

  • 问题内容: 我有包含我的上下文的课程。但是,当我编译时,在这一行中出现了另一个类: 类: 错误: AndroidManifest.xml: 问题答案: 您需要在清单中指定以使用自定义应用程序。 这是完整的

  • 我需要将ndjson对象转换为python中的json,我看到pypi中有一个库。org,但我不能使用它,它是ndjson 0.3.1 进入json 有什么帮助吗?谢谢你们

  • 问题内容: 整个问题都适合标题。并添加一些上下文:我不是在问规范所要求的最佳选择,而是考虑到当今部署的浏览器的混合,哪种方法最有效。 一些数据点: Google使用其主页上使用的JS。 Google 在Google文档上使用。 Google使用其Ajax库服务来提供JavaScript文件。 雅虎用来提供他们的JS。 雅虎在其主页上投放的JavaScript 使用。 问题答案: 已过时 在决定移居

  • Kera的应用模块Application提供了带有预训练权重的Keras模型,这些模型可以用来进行预测、特征提取和finetune 模型的预训练权重将下载到~/.keras/models/并在载入模型时自动载入 可用的模型 应用于图像分类的模型,权重训练自ImageNet: Xception VGG16 VGG19 ResNet50 InceptionV3 InceptionResNetV2 Mo

  • Kera的应用模块Application提供了带有预训练权重的Keras模型,这些模型可以用来进行预测、特征提取和finetune 模型的预训练权重将下载到~/.keras/models/并在载入模型时自动载入 可用的模型 应用于图像分类的模型,权重训练自ImageNet: Xception VGG16 VGG19 ResNet50 * InceptionV3 所有的这些模型(除了Xception