几天以来我一直在尝试从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
不确定我是否误解了您的问题,但是您需要做的是使用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);
因此使用数组的find
方法。 find
方法将仅返回与之匹配的一个对象。
const result = {};
const arr = [
{
"ID": "12345",
"key": value
},
{
"ID": "23456",
"key": value
},... ];
result = arr.find(item => item.ID === 'searchId');
数据完全按照我在first post中的规定排列在一个数组中为了安全起见,我无法与数据完全共享JSON,因此我用一些伪造的数据重写了它。这是控制台上的错误enter image description here