2017-06-25 59 views
0
const express = require('express'); 
const req = require('request') 

var app = express(); 
var port = process.env.PORT || 80; 

var server = app.listen(port,() => { 
    console.log('Server listening on ' + port); 
}); 

app.route('/rap').get((request, result) => { 
    if(!request.query.u) { result.send("Please provide a user!"); return 0} 
    req("https://rbx.rocks/apis/user_items?u="+request.query.u, function(error, response, body) { 
     var jsonbody = JSON.parse(body) 
     result.send(jsonbody.stats.RAP) 
    }) 
}); 

上面的代码告诉我,jsonbody.stats不存在,但是当我打印jsonbody它清楚地表明,统计数据确实存在如何向json api发出请求并从中获取字段?

回答

1

这个API看起来是非常奇怪。它似乎返回包含单个字符串的JSON。该字符串又是一个JSON对象。所以你需要首先解析正文,然后解析它包含的字符串。

试试这个:

var jsonbody = JSON.parse(JSON.parse(body)); 
result.send(jsonbody.stats.RAP); 
+0

真奇怪......虽然工作! –

+0

它有时会给我错误,说它已经是一个对象,所以我做了这个... '''if(typeof jsonbody!='object'){jsonbody = JSON.parse(jsonbody)}''' –