json - 如何使用也位于对象中的“名称”关键字在 json 文件中记录对象的“id”?
问题描述
我通过在终端中输入“node app.js”来启动我的程序。我的总体目标是在终端中再次输入一个特定的单词,例如“pinball”。然后程序将继续运行并在 json url 中搜索单词“pinball”。json url 的对象之一是名称:“Supreme®/Stern® Pinball Machine”。它将使用单词“pinball”定位包含该名称的对象,并且控制台仅记录也在该对象内部的 id。这是我正在谈论的json的一部分:
{
"unique_image_url_prefixes": [],
"products_and_categories": {
"Accessories": [{
"name": "Supreme®/Stern® Pinball Machine",
"id": 171495
}]
}
}
json 的完整 url 可以在以下位置找到:http ://www.supremenewyork.com/mobile_stock.json 任何帮助都很棒,我可以澄清任何没有意义的东西。我计划对 json 文件中的所有 id 执行此操作,但是一个关于如何执行的示例将非常适合对其他 id 进行编码。这是我一直在处理的代码部分:
const request = require('request')
request('http://www.supremenewyork.com/mobile_stock.json', function(error, response, body) {
const ids = Object.values(JSON.parse(body).products_and_categories).reduce((o, items) => o.concat(items.map(({
Id
}) => id)), [])
console.log(ids)
})
简而言之,我想运行我的程序,在终端中输入单词“pinball”,然后控制台会记录“171495”
解决方案
据我在数据中看到的,该对象包含键,并且在键中,您有一个包含特定类别的所有产品的数组。这可能有效:
const request = require('request');
request('http://www.supremenewyork.com/mobile_stock.json', function(error, response, body) {
const searchword = "Pinball";
const data = JSON.parse(body).products_and_categories;
const ids = [];
for (var key in data) {
if (data.hasOwnProperty(key)) {
data[key].map(item => {
if (item.name.indexOf(searchword) >= 0) {
ids.push(item.id);
}
});
}
}
console.log(ids);
})
推荐阅读
- npm - 可以在 package.lock.json 依赖树的不同部分中存在同一个包的多个版本吗?
- sql - 将从光标获取的数据复制到 CSV PostgreSQL
- xamarin.forms - 我正在尝试通过在 xamarin 表单上使用绑定来嵌入图像
- python - 使用 python 读取给定 URL 的网络请求
- metadata - 获取 Wikidata 项目查看次数/流行度指数
- java - Harmony OS 中 TextView Android 中阴影的替代方案是什么?
- r - 如何使用 R 制作对称矩阵?
- python - fuzz.token_sort_ratio() 结果不一致?
- point-cloud-library - PCL ASCII - 读取 RGB 值?
- typescript - TypeScript `extends` 运算符的奇怪结果(测试类型可分配性)