【问题标题】:How do i make a request to a json api and get a field from it?我如何向 json api 发出请求并从中获取字段?
【发布时间】:2017-11-28 06:04:01
【问题描述】:
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 时,它清楚地表明 stats 确实存在

【问题讨论】:

    标签: json node.js express request


    【解决方案1】:

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

    试试这个:

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

    【讨论】:

    • 它有时会给我错误,说它已经是一个对象,所以我这样做了...if (typeof jsonbody != 'object') { jsonbody = JSON.parse(jsonbody) }
    猜你喜欢
    • 2020-01-04
    • 2013-07-11
    • 1970-01-01
    • 2014-06-29
    • 2019-08-10
    • 2017-01-28
    • 1970-01-01
    • 2019-04-03
    • 2014-09-30
    相关资源
    最近更新 更多