我有一个返回JSON的API,如下所示:
[{
"Code": "001",
"Name": "xyz",
"Members": [{
"FullName": "User1"
}]
}, {
"Code": "002",
"Name": "asd",
"Members": [{
"FullName": "User2"
}]
}]
我想在我的标签中替换名称和成员与“代码”匹配,我想用ajax做到这一点。如何实现与Code的匹配?
这是我的实施:
$('#btnFind').on('click', function () {
var Code = $("#input_edit_code").val();
$.ajax({
type: "get",
url: "/mvc/ComplaintHandlerSquadGetListPage",
success: function () {
alert();
},
error: function (ex) {
alert(ex.title);
}
});
})
您可以使用javascript过滤器和map Array函数。
让我们假装您将用户键入的代码存储在此codeNumber var中
var codeNumber = '002';
你的成员数组:
var members = [{"Code":"001","Name":"xyz","Members":[{"FullName":"User1"}]},{"Code":"002","Name":"asd","Members":[{"FullName":"User2"}]}];
通过代码过滤数组的函数:
var byCode = function(member) {
return member.Code === codeNumber;
};
获取已过滤成员名称的函数:
var getName = function(member) {
return member.Name;
};
你得到会员的名字
var memberName = members.filter(byCode).map(getName).toString();
console.log(memberName);
我不相信AJAX和单独的简单JSON可以做你想要的。
JSON是一种构造对象的方法 - JavaScript Object Notation。它只构建数据。
AJAX是一种制作HttpRequest的异步方法。它要求服务器提供一些东西。
如果您使用AJAX请求JSON文件。您将获得JSON数据。
我相信你有两个选择:
在成功处理程序中,您可以比较以下内容:
success: function(response) {
// yourObject that matches the code
var yourObject = response.filter(function(item) {
return item.Code === Code
});
// wherever you want to show this name
$("body").text(yourObject.Name);
}
$.ajax({
type: "get",
url: "/mvc/ComplaintHandlerSquadGetListPage",
success: function (result) {
jQuery(result).each(function(i, item){
if(item.Code == Code)
{
$('#myid').text(item.Name);
}
},
error: function (ex) {
alert(ex.title);
}
});