首页 > 解决方案 > 如何从与值同名的api获取json数据

问题描述

我想制作一个在 json 中搜索数据的系统。所以我在rest api上有json。api看起来像这样

[
    {
    "info": "cute but big animal",
    "type": "pig",
    "name": "patty"
    },
    {
    "info": "Barks all the time",
    "type": "dog",
    "name": "parker"
    },
    {
    "info": "Makes delicious eggs",
    "type": "chicken",
    "name": "chicky"
    }
]

有很多具有相同名称的值。

我用谷歌搜索了很多,但他们都说我需要编号。 data.value[1]

我希望能够搜索 patty 并获取信息和类型只是获取 json 数据

Javascript 或 nodeJS

标签: javascriptnode.jsjsonapirest

解决方案


如果您同时知道键和值,这似乎是最简单的方法:

const arrayOfObjects = [
    {
    "info": "cute but big animal",
    "type": "pig",
    "name": "patty"
    },
    {
    "info": "Barks all the time",
    "type": "dog",
    "name": "parker"
    },
    {
    "info": "Makes delicious eggs",
    "type": "chicken",
    "name": "chicky"
    }
];

const key = 'name';
const value = 'patty';
const object = arrayOfObjects.find(obj => obj[key] === value);

console.log(object);

如果您不知道密钥,这是一种可能的方法:

const arrayOfObjects = [
    {
    "info": "cute but big animal",
    "type": "pig",
    "name": "patty"
    },
    {
    "info": "Barks all the time",
    "type": "dog",
    "name": "parker"
    },
    {
    "info": "Makes delicious eggs",
    "type": "chicken",
    "name": "chicky"
    }
];

const value = 'patty';
const object = arrayOfObjects.find(
  obj => Object.values(obj).some(val => val === value)
);

console.log(object);


推荐阅读