首页 > 解决方案 > 无法访问此 JSON 嵌套对象

问题描述

我一直在尝试访问这个嵌套的 json 对象,它是来自 firebase 的响应。我在前端使用 angular 7,我想在页面上显示这些数据。

返回数据:

{"-LZn4rzsI3_0Mm0pcUZ2":{"email":"primedine@gmail.com","name":"Prime 
Dine Restaurant","phone":9512556799},"-LZn4vGB7v0frlDywQ1x": 
{"email":"mango@gmail.com","name":"@Mango","phone":7992556799},"- 
LZn4xyGeo-yh6945mKC":{"email":"desitadka@gmail.com","name":"Global 
Desi Tadka","phone":8872556799},"-LZn50DSU3JNw6hNcdzz": 
{"email":"vishala@gmail.com","name":"VIshala","phone":9972556799}}

到目前为止,我已经尝试通过将响应放入变量中然后使用 data[0][name] 进行访问,但它不起作用。我也尝试通过密钥(此处的名称)访问它,但这也不起作用。请问有什么建议吗?

标签: jsonfirebaseangular7

解决方案


您应该使用JSON.parse(),如下所示:

var json = '{"-LZn4rzsI3_0Mm0pcUZ2":{"email":"primedine@gmail.com","name":"Prime 
Dine Restaurant","phone":9512556799},"-LZn4vGB7v0frlDywQ1x": 
{"email":"mango@gmail.com","name":"@Mango","phone":7992556799},"- 
LZn4xyGeo-yh6945mKC":{"email":"desitadka@gmail.com","name":"Global 
Desi Tadka","phone":8872556799},"-LZn50DSU3JNw6hNcdzz": 
{"email":"vishala@gmail.com","name":"VIshala","phone":9972556799}}';
var obj = JSON.parse(json);

//Use the object as desired, for example:
Object.keys(obj).forEach(e =>
  console.log(`key = ${e}  name = ${obj[e].name}`)
);

推荐阅读