在不知道对象键的情况下访问对象值

Posted

技术标签:

【中文标题】在不知道对象键的情况下访问对象值【英文标题】:Accessing Object values without knowing the keys of that Objects 【发布时间】:2018-11-28 16:40:38 【问题描述】:

我确实完成了我的 reactjs 教程并开始制作一个将数据存储在 json 中的 webapp。我能够从 json 数据中找到我的对象,并且该对象将代表如下内容:

var data=
    name:<h1>Ram</h1>,
    description:<p>I want to be a Developer</p>,
    contact:<ul><li>66546464/li><li>66546464/li></ul>,
    DOB:<h4>23.05.2017</h4>
    

我需要以这种方式显示,但不使用像

这样的键
   data.name or data.DOB.

输出应该是这样的:

   <div>
       <h1>Ram</h1>
       <p>I want to be a Developer</p>
        <ul><li>66546464/li><li>66546464/li></ul>
        <h4>23.05.2017</h4>
    </div>

是否可以在不知道键的情况下显示值?如果是这样,请帮帮我吗?

随时欢迎批评!

【问题讨论】:

How to get all properties values of a javascript Object (without knowing the keys)?的可能重复 谢谢你的回答!你能给我看一个反应的例子吗?这真的很有帮助@GuillaumeGeorges 【参考方案1】:

您必须遍历对象的键并将其值附加为父 div 的子项。请考虑以下代码:

<div>
  Object.keys(data).map(key => data[key])
</div>

Object.keys 将为您提供对象的键,map 函数以数组格式返回键的所有值。如上代码所示,可以用 React JSX 编写。

【讨论】:

感谢您的帮助!【参考方案2】:

这是在 react.js 中的操作方法

<div>
  Object.keys(data).map(key) => (
    <span key=key>
      data[key]
    </span>
  )
</div>

解释。 Object.keys 从您的对象中获取所有键,您映射它们并为每个返回一个 &lt;span&gt; (note the key),并在每个跨度内通过其键从数据中获取值

【讨论】:

【参考方案3】:

在没有 html 标签的情况下存储数据更有意义(使用标签存储是不好的做法,许多框架/库会尝试解析您的特殊字符并导致您在路上遇到麻烦) 然后,您可以使用键访问视图中的原始数据。

<h1>data.name</h1> <p>data.description</p> 等等

如果您坚决反对使用密钥,您可能会发现这个关于漂亮打印 JSON 数据的线程会有所帮助:

Pretty Printing JSON with React

【讨论】:

感谢您的提醒!我会调查一下@Ryan

以上是关于在不知道对象键的情况下访问对象值的主要内容,如果未能解决你的问题,请参考以下文章

在不知道值键的情况下读取孩子的值

在不丢弃其余键的情况下更改对象的键值

如何在不知道 json 键的情况下使用 JsonReader 从 json 读取值

在不知道键名的情况下访问 JSON 对象的元素

如何在不知道子类名称的情况下访问 django 中对象的子类?

如何在不使用 for 循环的情况下从 appsettings 文件中读取对象数组中特定键的值