node.js - lodash过滤嵌套的json
问题描述
嗨,我有以下 json 数据...
{
"contacts":
[
{
"contactId": "00001",
"firstName": "test",
"lastName": "test",
"email": "test@test.com",
"phone": "0207 0000000",
"role": "Surveyor",
"customer": "00001",
"projects": [{"projId": "00002"}]
},
{
"contactId": "00002",
"firstName": "test1",
"lastName": "test1",
"email": "test@test.com",
"phone": "0207 1111111",
"role": "Manager",
"customer": "00001",
"projects": [{"projId": "00002"}, {"projId": "00003"}]
}
]
}
我需要一个 API 端点,它根据 projID 返回联系人,但由于 projId 嵌套在项目数组中而遇到问题......
//Get contacts by Project
app.get('/v1/projcontacts/:id', function(req, res) {
var id = req.params.id;
var projContacts = lodash.filter(contactData.contacts, { 'projId': id });
res.json(projContacts);
})
任何人都可以帮助我使用上面的代码让 lodash 查看项目内部吗?
解决方案
你可以尝试这样的事情:
app.get('/v1/projcontacts/:id', function(req, res) {
var id = req.params.id;
var projContacts = contacts.filter(
contact => contact.projects.map(
projects => projects.projId === id
).includes(true)
)
res.json(projContacts);
})
推荐阅读
- sql - 如何使用 Liquibase 对表和索引使用不同的表空间
- javascript - HTML,react.js如何制作下载按钮下载HTML页面内容?
- inria-spoon - 在没有严格编译的情况下为 CtCodeSnippetStatement 构建 Spoon CtElements
- python - 将不正确的 JSON 加载到 Dataframe 中
- rust - 创建向量并稍后分配时出现问题
- java - SFTP服务器获取权限在java中不起作用
- nodes - 如何在使用 nodejs 14 安装 Cypress v6.6 时修复丢失的文件夹“cypress”
- angular - 如何使用 Ionic 框架添加自动 OTP 验证功能?
- java - 如何处理大型 http JSON 响应体
- tensorflow - 我应该在 tensorflow.keras 中使用哪种类型的 input_shape?