gpt4 book ai didi

node.js - 在node/expressjs中过滤json对象

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:40 25 4
gpt4 key购买 nike

我正在寻找在 Express js 应用程序中使用下划线根据上一页的用户输入来过滤 json 文件。这是我到目前为止所做的:

var fs = require('fs');
var contents = fs.readFileSync("public/files/testFile.json");
var obj = JSON.parse(contents);
var gender = req.query.gender

var filtered = _.where(obj.elements, {gender: true}); // elements is the array I want to filter

我尝试过滤的 json 如下:

{
"elements": [
{
"id": 0,
"man": true,
"url": "https://pbs.twimg.com/media/CfRi_u8aaW8AfQvI7v.jpg"
},
{
"id": 1,
"Woman": true,
"url": "https://pbs.twimg.com/media/CfZ-8ikafWsAAngQGP.jpg"
}
]
}

请注意,当我执行相同的操作,将变量性别更改为“man”时,它可以正常工作。看起来像这样使用变量进行搜索是行不通的。我有两个问题:

  1. 我该怎么做才能让它发挥作用?
  2. 有更好的方法来面对这个问题吗?

最佳答案

为什么不尝试以下方法:

var _ = require('underscore');
var elem = {
"elements": [
{
"id" : 0,
"man": true,
"url": "https://pbs.twimg.com/media/CfRi_u8W8AQvI7v.jpg"
},
{
"id" : 1,
"woman": true,
"url" : "https://pbs.twimg.com/media/CfZ-8ikWsAAnQGP.jpg"
}
]
};
var gender = 'man';
var filtered = _.filter(elem.elements, function(element){
return _.has(element, gender) && element[gender] === true;
});
console.log(filtered);

我在这里对性别的值进行了硬编码。您可以从应用程序中的查询中读取该信息。我认为该片段几乎是不言自明的。

关于node.js - 在node/expressjs中过滤json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36546283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com