如何使用Reactjs从json获取数据

如何使用Reactjs从json获取数据,reactjs,Reactjs,我知道这是非常基本的。但如果有人能帮助我理解如何使用React js从json获取数据,我将不胜感激。 我刚刚开始学习React,所以我很想知道是否有任何方法可以使用它从复杂的json获取数据 我已经试着按照教程做了 我试图从json中的第二级键获取数据。我可以使用Object.keys实现这一点,但当我尝试将其应用于数据集时,我不确定这里的问题是什么。当我尝试使用与其他数据集没有太大区别的注释数据集时,我无法得到任何东西。Object.keys是否可以应用于有多个键的数据集?有人能帮忙吗 请检

我知道这是非常基本的。但如果有人能帮助我理解如何使用React js从json获取数据,我将不胜感激。 我刚刚开始学习React,所以我很想知道是否有任何方法可以使用它从复杂的json获取数据

我已经试着按照教程做了

我试图从json中的第二级键获取数据。我可以使用Object.keys实现这一点,但当我尝试将其应用于数据集时,我不确定这里的问题是什么。当我尝试使用与其他数据集没有太大区别的注释数据集时,我无法得到任何东西。Object.keys是否可以应用于有多个键的数据集?有人能帮忙吗

请检查我的

这是我的密码

var SearchStock = React.createClass({

  getInitialState: function() {
    return {searchString: ''};
  },

  handleChange: function(e) {
    this.setState({searchString: e.target.value});
  },

  render: function() {
    var stocks = this.props.items, searchString = this.state.searchString.trim().toLowerCase();

    if (searchString.length > 0) {
      stocks = stocks.filter(function(l) {
        // return l.name.toLowerCase().match(searchString);
        return l[Object.keys(l)[0]]["name"].toLowerCase().match(searchString);
      });
    }

    return <div >
      < input type = "text" value = {this.state.searchString} onChange = {this.handleChange} placeholder = "Type here" / >
      < ul > 
      {stocks.map(function(l) {
            return <li > {l[Object.keys(l)[0]]["name"]} < /li>
            // return <li > {l[Object.keys(l)[0]]["name"]} < /li>
        })
      } 
      < /ul> 
    < /div>;
  }
});

// var stocks = [{"F": {"symbol": "F", "name": "Ford Motor", "bidPrice": 13.41, "askPrice": 13.36}}, {"GE": {"symbol": "GE", "name": "General Electric", "bidPrice": 32.33, "askPrice": 32.39}}, {"JNJ: {"symbol": "JNJ", "name": "Johnson \u0026 Johnson", "bidPrice": 121.0, "askPrice": 123.0,}}];

var stocks = [{"symbol": {"symbol": "F", "name": "Ford Motors"}, "name": "Ford Motor", "bidPrice": 13.41, "askPrice": 13.36}, {"symbol": {"symbol": "GE", "name": "General Electronics"}, "name": "General Electric", "bidPrice": 32.33, "askPrice": 32.39}, {"symbol": {"symbol": "JNJ", "name": "Johnson \u0026 Johnson"}, "name": "Johnson \u0026 Johnson", "bidPrice": 121.0, "askPrice": 123.0,}];

ReactDOM.render( < SearchStock items = {stocks} />,document.getElementById('container'));
var SearchStock=React.createClass({
getInitialState:函数(){
返回{searchString:''};
},
handleChange:函数(e){
this.setState({searchString:e.target.value});
},
render:function(){
var stocks=this.props.items,searchString=this.state.searchString.trim().toLowerCase();
如果(searchString.length>0){
库存=库存。过滤器(函数(l){
//返回l.name.toLowerCase().match(搜索字符串);
返回l[Object.keys(l)[0][“name”].toLowerCase().match(searchString);
});
}
返回

    {stocks.map(函数(l)){ return
  • {l[Object.keys(l)[0][“name”]}
  • //return
  • {l[Object.keys(l)[0][“name”]}
  • }) }
; } }); //var股票=[{“F”:{“symbol”:“F”,“名称”:“福特汽车”,“投标价格”:13.41,“askPrice”:13.36},{“GE”:{“symbol”:“GE”,“名称”:“通用电气”,“投标价格”:32.33,“askPrice”:32.39},{“JNJ:{”symbol:“JNJ”,“名称”:“约翰逊”\u0026约翰逊”,“投标价格”:121.0,“askPrice”:123.0,}; var股票=[{“symbol”:“F”,“名称”:“福特汽车”},“名称”:“福特汽车”,“投标价格”:13.41,“askPrice”:13.36},{“symbol”:“GE”,“名称”:“通用电子”},“名称”:“通用电气”,“投标价格”:32.33,“askPrice”:32.39},{“symbol”:“JNJ”,“名称”:“约翰逊”\u0026约翰逊”},“名称”:“约翰逊”\u0026约翰逊”“,“投标价格”:121.0,“askPrice”:123.0,}]; render(,document.getElementById('container'); 我的目标是构建一个简单的单页应用程序,在这个应用程序中,我们可以使用key.symbol从json中搜索数据,因此我正在为数据添加另一个级别,以便在构建api时,我可以使用该符号将其放在那里


如果有人能帮我解决这个问题,我将不胜感激。很抱歉在中间换了我的问题。感谢您为我指明了正确的方向。

在Stock元素的componentDidMount方法中实现这一点

大概是这样的:

var Stock = React.createClass({
  ...
  render: function() {
  ...
  },
  componentDidMount: function() {
    let url = 'myStockApi/' + this.props.symbol;
    this.serverRequest = $.get(url, function(result) {
      let quote = result;
      this.setState({
        quote
      });
    }.bind(this));
  },
  componentWillUnmount: function() {
    this.serverRequest.abort();
  },
});

查看文档。

我从中找到了答案。我已经更新了我的帖子。请检查我帖子中的代码。

如果不知道第一级键值,我无法理解如何访问第二级键值。-这是你要找的吗?谢谢你给我指出这一点。@Luksprog有没有办法让我忽略第一级键而直接检查第二级键?请检查一下电话号码。这里我想使用data0。现在我看到了。我真的不在乎一级密钥的值。抱歉之前问了不正确的问题,感谢我在javascript中学到了一些新东西。注意:我知道我可以使用上面链接中提到的data.forEach(function(m)方法获得这个结果。但是我正在寻找一些更简单的方法,比如json。{}.key.抱歉,我通常使用python,我知道这是可能的。@Luksprog我曾尝试使用in-loop,但它不起作用。我不知道为什么,因为逻辑似乎是合理的。这是我的。也许我的方法不对。我也会更新我上面的帖子。@Luksprog谢谢,我能够解决它。非常感谢!这与虚拟url d一起工作ata并将在稍后帮助我。我将在构建api后尝试了解其详细信息。我已更新了我的帖子。现在我需要从json正确获取嵌套数据,如果您能回答我的查询,我将不胜感激。