【问题标题】:How to cast/parse API response from Node.JS如何从 Node.JS 转换/解析 API 响应
【发布时间】:2018-04-21 14:06:52
【问题描述】:

我在 Node.js 中有一行代码调用外部 API:

public.getInfo(console.log, config.data1);

并检索一些数据:

null { abc:
   {field1: 0.234252,
   {field2: 0.234252,
   {field3: 0.234252,
   {field4: 1,
   {field5: 0.234252 },
{ xzy:
   {field1: 0.234252,
   {field2: 0.234252,
   {field3: 0.234252,
   {field4: 0.234252,
   {field5: 0.234252 }}

我可以在控制台中看到结果。我有两个问题:

  1. public.getInfo(console.log, config.data1); 具有 console.log 作为“回调”功能。如果我不想打印这些数据,而只是在代码中的其他函数中使用它怎么办?

  2. 如何“读取”API 响应?如何使用响应的 JSON 结构?例如:abc -> fiels4 => 1

【问题讨论】:

  • 只能通过回调函数获取数据。
  • 删除console.log并替换为你的回调函数function(err, data) { // data will be your response }
  • 太棒了!至少现在我对回调函数有了更好的理解;)我的新函数是:public.getInfo(function(err,data){}, config.data1);一旦我得到对象“数据”,我该如何浏览/投射/解析它?

标签: arrays json node.js api


【解决方案1】:

我实际上已经找到了一个解决方案...

public.getInfo(function(err,data){  
console.log(data[config.data1].field4)
return true
},
config.data1);

这给了我返回的 API 调用的正确值...(在控制台中)...

但是如何使用public.getInfo函数之外的值呢?我需要创建一个变量吗?迷茫

【讨论】:

  • 你没有。一旦你是异步的,你必须在整个执行过程中一直保持异步。查看Promises
  • 是不是意味着我需要在函数内部使用API​​结果?并最终在第一个函数中调用一个函数?长话短说,我想要实现的是:1)从 API 检索日期 2)操作检索到的数据 3)调用另一个 API,包括来自第一个 API 调用的一些参数/数据......我在正确的道路上吗?谢谢
【解决方案2】:

由于缺少代码,我不确定,但我认为 config 是您在某处设置的变量,并且您从 config.data1 接收数据。

使用config.data1[0].field4读取abc的对象属性 -> field4 => 1

或者阅读其他方式读取属性https://www.w3schools.com/js/js_properties.asp

【讨论】:

  • 感谢您的回复,您说得对,我在这里没有放太多代码.... LOL config 是一个从 config.json 读取一些参数的变量...回调现在给我“数据”对象。public.getInfo(function(err,data){}, config.data1) 但如何读取数据对象转换“abc”-> field4?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 2022-01-12
相关资源
最近更新 更多