如何读取嵌套的 json 对象? [复制]

Posted

技术标签:

【中文标题】如何读取嵌套的 json 对象? [复制]【英文标题】:How to read nested json object? [duplicate] 【发布时间】:2018-05-29 15:27:54 【问题描述】:

我已经创建了一个这样的对象。

myObj =  
	  "name":"John",
	  "age":30,
	  "cars": [
		  "car1":"Ford",
		  "car2":"BMW",
		  "car3":"Fiat"
	  ]
   

我可以轻松读取姓名和年龄,但我想读取对象“汽车”下的内容(键值)。我想将键值放在下拉列表中,以便如果从汽车中选择任何键,我将获得相应的值。 谢谢!

【问题讨论】:

myObj.cars.car1, myObj.cars.car2 ...另外,仅供参考,这是一个对象文字,而不是 JSON。 如果您将汽车对象设为数组会更容易。你会得到“汽车”:[“福特”、“宝马”、“菲亚特”]。 您要读取值还是键?您期望的值列表是什么? “汽车1,汽车2,汽车3”?您所描述的是:<select><option value="Ford">car1<option><option value="BMW">car2</option> - 即“选择一个键 (car1) 获取值 (Ford)” - 这似乎是错误的方式。 【参考方案1】:

只需通过myObj.cars.car1myObj.cars.car2myObj.cars.car3直接获取或循环如下示例

var myObj = 
  "name": "John",
  "age": 30,
  "cars": 
    "car1": "Ford",
    "car2": "BMW",
    "car3": "Fiat"
  
;

for (let i in myObj) 
  if (typeof myObj[i] == 'object') 
    for (let j in myObj[i]) 
      console.log(j, myObj[i][j]);
    
   else 
    console.log(i, myObj[i]);
  

【讨论】:

【参考方案2】:

使用点运算符,您可以通过它访问属性

myObj = 
    "name":"John",
    "age":30,
    "cars": 
        "car1":"Ford",
        "car2":"BMW",
        "car3":"Fiat"
    
 
 console.log(myObj.cars.car1);
  console.log(myObj.cars.car2);
   console.log(myObj.cars.car3);

【讨论】:

以上是关于如何读取嵌套的 json 对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从配置文件中读取嵌套对象的值

从嵌套的 Json 对象中读取值

在angular7中读取复杂的嵌套json对象数组

如何在熊猫数据框中读取嵌套的 json 文件?

如何从嵌套的 json 中读取字段?

C#读取Excel中嵌套的Json对象,Json带斜杠的问题(其一)