如何从 Steam 的 API GetTradeOffer 获取 trade_offer_state

How to get trade_offer_state from Steam's API GetTradeOffer

我有一个对象 trade 从 Steam 的 API GetTradeOffer 返回,其中包含以下内容:

tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7

如果我 console.log(trade) 我得到:

tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7

但是如果我这样做 console.log(trade.trade_offer_state) 我会得到 undefined

有人知道为什么吗?

编辑:

这是本节的完整标记:

function checkOffer(offer) {
    offers.getOffer({
        tradeOfferId: offer.trade_id.toString()
    }, function(err, trade) {
        if (err) {
            throw err;
        }
        logger.info(trade);
        if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
            connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
                if (err) {
                    throw err;
                }
                logger.info(rows[0]);
            });
        }

    });
}
var trade = { 
    "tradeofferid": 697052768, 
    "accountid_other": 38044877, 
    "expiration_time": 1443176120, 
    "trade_offer_state": 7 
};

console.log( trade.trade_offer_state ); // same as
console.log( trade["trade_offer_state"] ); // both return 7

var trade = "tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7";

您可以添加这些行:

function(err, trade) {
    eval.bind( this )( "var " + trade );
    trade = { 
        "tradeofferid": tradeofferid, 
        "accountid_other": accountid_other, 
        "expiration_time": expiration_time, 
        "trade_offer_state": trade_offer_state
    };
    if (err) {
        throw err;
    }
    logger.info(trade);
    if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
        connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
            if (err) {
                throw err;
            }
            logger.info(rows[0]);
        });
    }
}

function(err, trade) {
    eval( trade );
    if (err) {
        throw err;
    }
    logger.info(trade);
    if (trade_offer_state == '7' || trade_offer_state == '4' || trade_offer_state == '5' || trade_offer_state == '6' || trade_offer_state == '9' || trade_offer_state == '10') {
        connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
            if (err) {
                throw err;
            }
            logger.info(rows[0]);
        });
    }
}

如果你的对象是:

var trade = {
    "response": {
        "offer": {
            "tradeofferid": "697052768",
            "accountid_other": 38044877,
            "expiration_time": 1443176120,
            "trade_offer_state": 7
        }
    }
}

然后您使用以下方法获得您的价值:

var val = trade.response.offer.trade_offer_state; // 7

DEMO