首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript -从对象中提取数据

Javascript -从对象中提取数据
EN

Stack Overflow用户
提问于 2016-09-20 06:29:19
回答 1查看 981关注 0票数 1

您好,我正在尝试从ReactJS中的一个对象(通过web API)提取一些数据(但我猜问题并不是react特定的)。我认为API返回的不是一个正确构造的JS对象。

您可以在浏览器中看到它:https://poloniex.com/public?command=returnTicker

如何将其映射到JS中的适当对象。

下面是我的代码:

代码语言:javascript
复制
  import React, { Component } from 'react';
import Place_holder from './place_holder';

const ticker = "https://poloniex.com/public?command=returnTicker";



class Body extends Component {
    constructor(props) {
        super(props);
        this.state = { value: ""};
    }


    handleChange(value) {
        this.setState({value});
    }

    getTicker(url) {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", url, false);
        xhr.send();

        let tick = xhr.responseText;
        console.log(tick.type);
        return tick;
    }



    render() {
        return (
            <div>
                <p>{this.getTicker(ticker)}</p>
                <input
                    type="number"
                    value={this.state.value}
                    onChange={event => this.handleChange(event.target.value)}
                />

                <Place_holder num={this.state.value}  />
            </div>
        )
    }
}

export default Body;

这将打印整个对象。我似乎无法从中提取信息。

编辑:我已经添加了JSON.parse位,现在我得到以下错误:

代码语言:javascript
复制
Uncaught Invariant Violation: Objects are not valid as a React child (found: object with keys {BTC_1CR, BTC_BBR, BTC_BCN, BTC_BELA, BTC_BITS, BTC_BLK, BTC_BLOCK, BTC_BTCD, BTC_BTM, BTC_BTS, BTC_BURST, BTC_C2, BTC_CGA, BTC_CLAM, BTC_CURE, BTC_DASH, BTC_DGB, BTC_DIEM, BTC_DOGE, BTC_EMC2, BTC_FLDC, BTC_FLO, BTC_GEO, BTC_GAME, BTC_GRC, BTC_HUC, BTC_HZ, BTC_LTBC, BTC_LTC, BTC_MAID, BTC_MMNXT, BTC_OMNI, BTC_MYR, BTC_NAUT, BTC_NAV, BTC_NBT, BTC_NEOS, BTC_NMC, BTC_NOBL, BTC_NOTE, BTC_NSR, BTC_NXT, BTC_PINK, BTC_POT, BTC_PPC, BTC_QBK, BTC_QORA, BTC_QTL, BTC_RBY, BTC_RDD, BTC_RIC, BTC_SDC, BTC_SJCX, BTC_STR, BTC_SYNC, BTC_SYS, BTC_UNITY, BTC_VIA, BTC_XVC, BTC_VRC, BTC_VTC, BTC_XBC, BTC_XCN, BTC_XCP, BTC_XDN, BTC_XEM, BTC_XMG, BTC_XMR, BTC_XPM, BTC_XRP, BTC_XST, USDT_BTC, USDT_DASH, USDT_LTC, USDT_NXT, USDT_STR, USDT_XMR, USDT_XRP, XMR_BBR, XMR_BCN, XMR_BLK, XMR_BTCD, XMR_DASH, XMR_DIEM, XMR_LTC, XMR_MAID, XMR_NXT, XMR_QORA, XMR_XDN, BTC_IOC, BTC_ETH, USDT_ETH, BTC_SC, BTC_BCY, BTC_EXP, BTC_FCT, BTC_BITCNY, BTC_RADS, BTC_AMP, BTC_VOX, BTC_DCR, BTC_LSK, ETH_LSK, BTC_LBC, BTC_STEEM, ETH_STEEM, BTC_SBD, BTC_ETC, ETH_ETC, USDT_ETC}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `Body`.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-20 06:34:57

API返回JSON字符串。有很多方法可以解决这个问题,但在您的代码上下文中,您可能只想使用:

代码语言:javascript
复制
var tickdata = JSON.parse(xhr.responseText);

参见example

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39583034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档