首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ReactJS中访问JSON对象键和值

如何在ReactJS中访问JSON对象键和值
EN

Stack Overflow用户
提问于 2020-04-03 22:50:09
回答 3查看 52关注 0票数 0

目标是在ReactJS中访问JSON数据中的键和值。

当前此value={this.state.myData}返回以下JSON格式数据:

代码语言:javascript
运行
AI代码解释
复制
"list":[
  {
    "id": "1",
    "first_name": "FirstName",
    "last_name": "LastName"
  },
  "address:"{
    "street": "123",
    "City":   "CityName",
    "State": "StateName"
  },
  "other_info": []
]

UI结构:

代码语言:javascript
运行
AI代码解释
复制
export default class App extends Component {
  contstructor(props) {
    super(props);
    this.state = {
      myData: "",
    };
  }
  render() {
    return (
      <div className="container">
        <table>
          <tr>
            <th>ID</th>
            <td>{myData.id}</td>
          </tr>
          <tr>
            <th>first_name</th>
            <td>{myData.first_name}</td>
          </tr>
        </table>
      </div>
    );
  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-30 22:43:04

解决此问题的方法是,数据类型是返回响应中的字符串。为了访问对象中的值,需要将其从字符串转换为对象。JSON.parse()做到了这一点。

票数 0
EN

Stack Overflow用户

发布于 2020-04-03 23:03:07

在尝试在render()函数中使用它之前,您需要从状态中提取myData。您可以使用下面这行代码来完成此操作:const {myData} = this.state;。您还可以执行类似于const myData = this.state.myData;的操作

代码语言:javascript
运行
AI代码解释
复制
import React, {Component} from 'react';

export default class App extends Component {
    constructor(props) {
        super(props);
        this.state = {
            myData: {
                "list": [
                    {
                        "id": "1",
                        "first_name": "FirstName",
                        "last_name": "LastName",
                        "address": {
                            "street": "123",
                            "City": "CityName",
                            "State": "StateName"
                        },
                        "other_info": []
                    }]
            }
        }
    };

    render() {
        // Extract myData from this.state.
        const {myData} = this.state;

        return(
            <div className="container">
                <table>
                    <tr>
                        <th>ID</th><td>{myData.id}</td>
                    </tr>
                    <tr>
                        <th>first_name</th><td>{myData.first_name}</td>
                    </tr>
                </table>
            </div>
        )
    }
}
票数 0
EN

Stack Overflow用户

发布于 2020-04-03 23:42:23

因为list是一个数组,所以尝试执行list[0].id。这样你就可以访问list的第一个对象了:

代码语言:javascript
运行
AI代码解释
复制
import React, {Component} from 'react';

export default class App extends Component {
    constructor(props) {
        super(props);
        this.state = {
            myData: {
                "list": [
                    {
                        "id": "1",
                        "first_name": "FirstName",
                        "last_name": "LastName",
                        "address": {
                            "street": "123",
                            "City": "CityName",
                            "State": "StateName"
                        },
                        "other_info": []
                    }
                ]
            }
        }
    };

    render() {
        // Do not store this.state in a variable. it's bad coding habits

        return(
            <div className="container">
                <table>
                    <tr>
                        <th>ID</th>
                        <td>{this.state.myData.list[0].id}</td>
                    </tr>
                    <tr>
                        <th>first_name</th>
                        <td>{this.state.myData.list[0].first_name}</td>
                    </tr>
                </table>
            </div>
        )
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61021553

复制
相关文章
学习迁移架构用于Scalable图像的识别
论文出自Google Brain,是对前一篇论文的改进,前一篇文章讲述了用RNN去搜索一个最好的网络结构,而这篇文章认为之前的搜索空间太大,效果不好,所以改成搜索CNN的效果最好的conv cell。再用这些conv cell来构建一个更好的网络。 链接:https://arxiv.org/abs/1707.07012 ---- 1、Introduction 在ImageNet上学习到的分类网络,其特征迁移到其他任务时,往往能获得更好的效果。但是如果将前一篇文章提出的NAS直接在ImageNet上训练
计算机视觉研究院
2018/04/17
7800
学习迁移架构用于Scalable图像的识别
Alembic - 用于 SQLAlchemy 的数据库迁移工具
将alembic.ini中的sqlalchemy.url改为你数据库地址:sqlalchemy.url = sqlite:///./database/app.sqlite3
崔哥
2023/10/23
1.3K0
新的ASP.NET Core 迁移指南
最近在微信里做了一个调查, 收到550份调查,参与的人数中接近1/3 还在维护Web Forms应用程序,说明这个存量规模还是很大的。
张善友
2022/04/28
5330
新的ASP.NET Core 迁移指南
迁移linux系统到新硬盘
老师评上了学校的青年学者重点培养计划,每年多了好多资金。实验室机器的配置也在逐步升高。上一批加ssd的时候,我们没分到,这次补上。
用户1148523
2019/05/26
8K0
迁移中的企业科技新范式|商业洞见
[摘要] 科技现在已经成为商业变革必不可少的推动力量,引领着我们从数字时代进入后数字时代。演进中的交互、增强人类效能、平台的兴起、安全和机器人的崛起这五个宏观板块的变迁对现行商业生态产生着越来越深刻的
ThoughtWorks
2018/04/17
8220
迁移中的企业科技新范式|商业洞见
HPE将新的SimpliVity HCI用于边缘计算
HPE本周推出了SimpliVity 2600,称该设备是SimpliVity HCI系列中的“首个软件优化产品”。 2U系统最初是为运行虚拟桌面系统而构建的,但它的大小和计算能力使其成为“理想的边缘计算应用”,Doyle Research首席分析师Lee Doyle说。
SDNLAB
2018/07/30
1.1K0
HPE将新的SimpliVity HCI用于边缘计算
Valve新2.0基站能支持房间级VR,最多可4个共用
为HTC Vive提供了核心技术的Valve,计划在2018年制造和销售新的Steam VR Tracking 2.0基站。最新的基站将为当前的追踪信标带来一系列的优化,包括支持超过两个基站来增加更大
VRPinea
2018/05/17
1.7K0
android中的深度学习——快速风格迁移
额,最近忙着答辩,先上一个效果图吧,把坑先占了。毕设完了之后有时间再写。 处理前 处理后
何时夕
2018/06/14
6210
etcd集群数据迁移至新集群
etcdctl backup --data-dir /var/lib/etcd --backup-dir /opt/etcdv2
程序员同行者
2020/12/29
3.8K0
webgl(threejs)生成房间楼层
在很多数字孪生项目中,都会涉及到楼层的建模。楼层的建模由于结构繁多,如果都是建模师进行手动建模,工作量会比较大。而楼层本身的结构,可以抽象成可以通过路径构造的对象(这和之前的文章提及的的管路以及道路类似),这方便我们通过代码的方式来生成房间楼层。
用户3158888
2022/09/23
1.7K0
webgl(threejs)生成房间楼层
Android 更新:新图标,新命名
当地时间8月22日,在Android Police网站上David Ruddock爆出Android将会使用新的图标及命名规则,在即将发布的新版Android系统上。
陈宇明
2020/12/16
5690
Zabbix在线迁移方案(适用于MySQL5.7)
xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。xtrabackup有两个主要的工具:xtrabackup、innobackupex,xtrabackup只能备份InnoDB和XtraDB两种数据表,且只备份数据文件(.ibd),并不备份数据表结构文件(.frm),同时不能备份MyISAM数据表,所以使用xtrabackup恢复的时候,你必须有对应表结构文件(.frm);innobackupex-1.3.1则封装了xtrabackup,是一个脚本封装,所以能同时备份处理InnoDB和MyISAM,但在处理MyISAM时需要加一个读锁。
Zabbix
2021/11/12
9200
Android 现有项目迁移到androidx
我在全新项目中用过androidx,也做过老项目迁移到androidx,所以,我想表达的是androidx其实没那么神秘,也没那么多坑,时至今日也一年多过去了,基本趋于稳定,未来也是大势所趋,所以,迁移是迟早的事。
yechaoa
2022/06/10
8000
Android 现有项目迁移到androidx
安全资讯|SurfingAttack –通过超声波入侵手机
SurfingAttack是一种黑客技术,可以看到以超声波编码的语音命令以无声方式激活手机的数字助理。该技术可用于执行多种操作,例如拨打电话或阅读短信。
用户5836910
2022/06/02
6820
安全资讯|SurfingAttack –通过超声波入侵手机
【迁移通知】Angel加入基金会 项目迁移至新仓库
为保证项目中立性,吸纳贡献者和独立执行社区管理规范,腾讯高性能分布式机器学习平台 Angel 项目加入 LF 深度学习基金会后,项目代码将从原仓库 Tencent/angel 迁移至独立仓库: https://github.com/Angel-ML/angel (点击文末“阅读原文”直接访问) 旧域名仍可访问,访问时将重新定向至新仓库域名,特此说明。 Angel 2.0 版本已发布, 基于参数服务器,Angel 可以轻松扩展到万亿维度的模型,感谢大家的持续关注,请给 Angel  一个 Star
腾讯开源
2018/08/28
2720
【迁移通知】Angel加入基金会 项目迁移至新仓库
Android Room数据库版本迁移的实战
最近一直在做一款Android的新产品,所以更新的文章基本都是Android相关,主要是产品中的应用的东西及一些笔记,新产品中Android本地数据库要存放的东西还挺多的,所以这篇是专门针对Android本地数据库Room的版本迁移做的一个填坑记录。
Vaccae
2021/10/25
2K0
Android Room数据库版本迁移的实战
使用Delphi编写×××类游戏 – 设
通过以上两篇关于对中心服务器和登录服务器设计的阐述,大家应该对设计它们有了一定的了解。但是中心服务器和登录服务器毕竟是游戏外围的部分,也就是说设计好了它们也还是无法实现编写一款游戏的目的啊。今天我们就来探讨一下如何设计游戏服务器。
py3study
2020/01/06
1.1K0
点击加载更多

相似问题

抢占与非抢占核与抢占与非抢占调度

13

关于非抢占式线程的查询

16

协作式/非抢占式线程避免死锁?

21

linux -内核线程抢占

11

系统线程与非系统线程

35
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档