搜索JSON并获取密钥

问题描述 投票:-2回答:3

几天以来我一直在尝试从JSON获取结果,这是我的问题

我正在调用一个AWS API,它向我发送了一个完整的JSON,如下所示:

[
  {
    "ID": "12345",
  "key": value
  },
    {
    "ID": "23456",
  "key": value
  },
    {
    "ID": "34567",
  "key": value
  },
    {
    "ID": "45678",
  "key": value
  },
    {
    "ID": "56789",
  "key": value
  },
    {
    "ID": "67890",
  "key": value
  },
    {
    "ID": "76543",
  "key": value
  },
    {
    "ID": "987654",
  "key": value
  }
]

我想做的是:用户将以表单的形式输入一个ID,然后提交并获得一个页面,该页面的值取决于JSON“键”

问题是我的API没有任何端点可以获取我特定的ID数据,只有我的ID列表位于此JSON(长度为多k行)中并获取值

您知道我该如何解决吗?

谢谢,

JB

angular typescript amazon-web-services
3个回答
0
投票

不确定我是否误解了您的问题,但是您需要做的是使用Array.filter()进行一些过滤。

从API响应中,您可以过滤出与搜索词(ID)匹配的数组中的对象,并且可以在回调函数中使用String.includes()完成此操作,该函数将检查其中是否包含搜索词。

const arr = [{
    "ID": "12345",
    "key": 'value'
  },
  {
    "ID": "23456",
    "key": 'value'
  },
  {
    "ID": "34567",
    "key": 'value'
  },
  {
    "ID": "45678",
    "key": 'value'
  },
  {
    "ID": "56789",
    "key": 'value'
  },
  {
    "ID": "67890",
    "key": 'value'
  },
  {
    "ID": "76543",
    "key": 'value'
  },
  {
    "ID": "987654",
    "key": 'value'
  }
];

const searchTerm = '987'
const res = arr.filter(obj => obj.ID.includes(searchTerm));
console.log(res);

0
投票

因此使用数组的find方法。 find方法将仅返回与之匹配的一个对象。

const result = {};
const arr = [
       {
          "ID": "12345",
          "key": value
       }, 
       {
         "ID": "23456",
         "key": value
       },... ];

result = arr.find(item => item.ID === 'searchId');

0
投票

数据完全按照我在first post中的规定排列在一个数组中为了安全起见,我无法与数据完全共享JSON,因此我用一些伪造的数据重写了它。这是控制台上的错误enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.