从JSON显示KEY值

时间:2018-03-19 15:13:59

标签: javascript arrays node.js reactjs npm

我正在尝试从我的JSON响应中显示一个键值。所以像这样的字段数据{ DMR_5_why_who_test :"测试",为什么:测试}。我希望能够显示粗体值或键值。目前我的代码如下所示。但它吐出[Object,Object]而不是我的键值

  dotesting = () => {
    const j = Object.values(this.state.data);
    var journalEntries = [];

      for (var i = 0; i < j.length; i++){
        journalEntries.push(
          <div>
          <h3>{j[i].fieldData.toString()}</h3>

          </div>);

      }
      console.log(<div>{journalEntries}</div>)
     return(<div>{journalEntries}</div>);


  }

4 个答案:

答案 0 :(得分:0)

只需使用Object.keys

Object.keys(this.state.data).map()

或者,您可以使用dotesting = () => { const journalEntries = Object.keys(this.state.data).map(el => <div> <h3>{el.fieldData.toString()}</h3> </div> ) return(<div>{journalEntries}</div>); } 进行迭代:

env = os.environ.copy()
env["DISPLAY"] = ":0"
env["XAUTHORITY"] = "~/.Xauthority"
subprocess.Popen('python2.7 /path/bla/bla/myapp.py', env=env, shell=True)

答案 1 :(得分:0)

访问Object的键,记录Object.keys()而不是Oject.values

&#34; Object.keys()方法返回给定对象自己的...属性的数组,其顺序与for ... in&#34;

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

答案 2 :(得分:0)

由于您正在谈论fieldData,您需要使用Object.keys来提取密钥,然后显示这些密钥。

dotesting = () => {
    const j = Object.values(this.state.data);
    var journalEntries = [];

    for (var i = 0; i < j.length; i++){
      const keys = Object.keys(j[i].fieldData);
      journalEntries.push(
         <div>
            <h3>{keys.join(', ')}</h3>
         </div>);
    }
    console.log(<div>{journalEntries}</div>)

    return(<div>{journalEntries}</div>);
}

答案 3 :(得分:0)

JSX正在指示返回引用journalEntries的div,这是一个对象,所以它正在按照你的要求去做。

相反,您可以使用Object.keys映射Object的键并返回值。通过这种方式,您告诉JSX打印每个值与整个Array对象。

旁注:我会使用Array.map静态方法和for循环,因为它本质上是声明性的,任何声明/功能都是更惯用的React。

const someData = {
 best: 'cats',
 secondBest: 'dogs'
}

const getData = () => Object.keys(someData).map((item, index) => {
  return someData[item];
})

const App = () => (
  <div>
    {getData()}
  </div>
);

ReactDOM.render(<App />, document.getElementById('root'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

<div id="root"></div>