Node.js Json未解析为第三方API的新行\n
我试图做的是从第三方api得到的响应中获取新行,并将其路由到我的终端。问题是我得到的是\n而不是每个响应的新行 这与我正在做的一个学校项目有关,但我在这方面做得很差 当我试图逃离角色时,我并不是很精明,我所有的尝试都失败了 这是负责获取数据的代码的一部分Node.js Json未解析为第三方API的新行\n,node.js,json,regex,express,Node.js,Json,Regex,Express,我试图做的是从第三方api得到的响应中获取新行,并将其路由到我的终端。问题是我得到的是\n而不是每个响应的新行 这与我正在做的一个学校项目有关,但我在这方面做得很差 当我试图逃离角色时,我并不是很精明,我所有的尝试都失败了 这是负责获取数据的代码的一部分 const Dota2API = require('dota2-web-api'); const express = require("express"); const dota2API = new Dota2API('80CAC0AD2974
const Dota2API = require('dota2-web-api');
const express = require("express");
const dota2API = new Dota2API('80CAC0AD297459DA36B70FD4365AEDD6', 'en_us');
const router = express.Router();
router.get('', (req, res, next) => {
let KKona;
dota2API.getLiveLeagueGames( function(r) {
console.log(r);
KKona = r;
res.json(KKona);
})
});
module.exports = router;
响应示例:
"{\n\"result\":{\n\"games\":[\n{\n\"players\":[\n{\n\"account_id\":307718596,\n\"name\":\"Осталось не долго\",\n\"hero_id\":9,\n\"team\":0\n},\n{\n\"account_id\":986933106,\n\"name\":\"Поросёнок228\",\n\"hero_id\":72,\n\"team\":1\n},\n{\n\"account_id\":352733459,\n\"name\":\"ками-\",\n\"hero_id\":94,\n\"team\":1\n},\n{\n\"account_id\":226243143,\n\"name\":\"youth\",\n\"hero_id\":9
用新行接收相同的数据,而不是\ngetLiveLeagueGames的输出,
r
的值为string
您可以通过包含以下行来查看:
console.log(typeof r)
然后将其传递给res.json
,后者正在将字符串处理为json
考虑将字符串解析为对象(JSON.parse
)或直接将响应传递出去
另请注意,不要公开共享您的API密钥/机密。您可以发布一个示例响应吗<代码>\n已经是新行的表示,应该由使用响应的人来处理。@ViniciusPinto是的,马上就要更新帖子了我以为
\n
在一个JSON字段的值中。在这种情况下,Dean answer应该这样做。哦,我的天哪,我甚至没有注意到api密钥,这可能已经破坏了我的steam帐户,已经撤销了它。@pepega还注意到,我通常希望从这样的库中得到类型为object
的结果,如果dota2 web api
库中存在错误,可能会出现这种情况。检查文档,如果需要,报告错误。