【发布时间】:2018-04-05 02:17:50
【问题描述】:
我必须搜索一些 JSON 数据以从输入表单中查找匹配项。这是我目前所拥有的:
<div class="container">
<form id="searchForm" class="form-group">
<input type="text" id="searchText" class="form-control />
</form>
</div>
这是我的 JS ...
let searchForm = document.getElementById('searchForm');
searchForm.addEventListener('submit', function(e){
e.preventDefault();
let searchText = document.getElementById('searchText').value;
getCharacters(searchText);
});
function getCharacters(searchText){
let xhr = new XMLHttpRequest();
xhr.open('GET', 'characters.json', true);
xhr.onload = function(){
if(this.status == 200){
let characters = JSON.parse(this.responseText);
let output = '';
for(let i in characters){
output +=
...
;
}
document.getElementById('characters').innerHTML = output;
}
}xhr.onerror = function(){
console.log('Request error');
}xhr.send();
};
还有我的 JSON ...
[
{
"id": 1001,
"first_name": "Rick",
"last_name": "Grimes",
"img": "https://ia.media-imdb.com/images/M/MV5BMjI2NDYyNjg4NF5BMl5BanBnXkFtZTcwMjI5OTMwNA@@._V1_.jpg",
"career": "Sheriff",
"actor": "Andrew Lincoln",
"still_alive": true,
"tags": ["rick","grimes","sheriff","andrew","lincoln","alive"]
},
{
"id": 1002,
"first_name": "Daryl",
"last_name": "Dixon",
"img": "https://ia.media-imdb.com/images/M/MV5BMTQ5ODE4NTgzMl5BMl5BanBnXkFtZTcwODI0MjAwMw@@._V1_.jpg",
"career": "unknown",
"actor": "Norman Reedus",
"still_alive": true,
"tags": ["daryl","dixon","unknown","norman","reedus","alive"]
},
{
"id": 1003,
"first_name": "Glenn",
"last_name": "Rhee",
"img": "https://ia.media-imdb.com/images/M/MV5BMTcxODE2MDgxOF5BMl5BanBnXkFtZTgwNjk2MDM1NzE@._V1_.jpg",
"career": "Nerd",
"actor": "Steven Yeun",
"still_alive": false,
"tags": ["glenn","rhee","nerd","steven","yeun","dead"]
}
]
在 JS 中,我正在寻找一种方法来使用 searchText 根据 first_name、last_name 或标签来查询 JSON。从那里我会将匹配的数据输出到每个匹配的 div 中。
在查询部分需要帮助!我所做的一切工作,但我被困在这一点上。非常感谢所有帮助!
【问题讨论】:
-
我建议将 JSON “转换”为实际的 JS 对象,而不是将响应转换为字符数组。这样,您可以将匹配项与其字段等相关联,并且从那时起几乎可以用它做任何事情。
标签: javascript arrays json