javascript - 如何获取具有嵌套对象和数组的对象中每个属性的值?
问题描述
有没有一种方法可以遍历具有多个嵌套级别的对象和数组的对象并仅提取所有底层属性值?
在这个例子中,我希望它到 console.log: "Live JSON generator", 3.1, "2014-06-25T00:00:00.000Z", true 和更远的地方:"Jane Doe", "888-555-1212" , “伴侣”
let test = {
"product": "Live JSON generator",
"version": 3.1,
"releaseDate": "2014-06-25T00:00:00.000Z",
"demo": true,
"person": {
"id": 12345,
"name": "John Doe",
"phones": {
"home": "800-123-4567",
"mobile": "877-123-1234"
},
"email": [
"jd@example.com",
"jd@example.org"
],
"dateOfBirth": "1980-01-02T00:00:00.000Z",
"registered": true,
"emergencyContacts": [
{
"name": "Jane Doe",
"phone": "888-555-1212",
"relationship": "spouse"
},
{
"name": "Justin Doe",
"phone": "877-123-1212",
"relationship": "parent"
}
]
}
}
for(var key in test){
console.log(test[key]);
}
console.log(test);
解决方案
JSON.parse
reviver和JSON.stringify
replacer可以是检查所有值的简单方法:
var o = {"product":"Live JSON generator","version":3.1,"releaseDate":"2014-06-25T00:00:00.000Z","demo":true,"person":{"id":12345,"name":"John Doe","phones":{"home":"800-123-4567","mobile":"877-123-1234"},"email":["jd@example.com","jd@example.org"],"dateOfBirth":"1980-01-02T00:00:00.000Z","registered":true,"emergencyContacts":[{"name":"Jane Doe","phone":"888-555-1212","relationship":"spouse"},{"name":"Justin Doe","phone":"877-123-1212","relationship":"parent"}]}}
JSON.stringify(o, (k, v) => typeof v == 'object' ? v : console.log(k, ':', v))
推荐阅读
- amazon-web-services - 如何为多个用户管理 EC2 密钥对?
- javascript - 我如何知道弹出窗口何时打开?
- jmx - 绑定名称 weblogic.management.home.localhome 无法在 weblogic 12c 控制台中看到
- docker - Docker 无法创建 nginx
- c# - VS 2019 发布构建成功,MSBuild 失败
- macos - 当我尝试在我正在开发的应用程序的 iOS 模拟器上运行我的颤振代码时,我得到 ERROR RUNNING POD INSTALL
- android-videoview - 当网络出现问题或其他错误时如何使用 vimeo 播放器而不显示链接
- amazon-web-services - 应用程序负载均衡器 - 运行状况检查失败并出现以下代码:[301]
- google-apps-script - 如何在 Apps Scripts 中搜索 google drive 的所有文件夹和子文件夹中的文件内容?
- python - 如何在循环内调用不和谐函数