我有一个json文件,我需要从特定的客户ID中提取最后一个值。 Json文件全天更新,我将此设置作为一个函数,将拉取客户ID中的最后一个作业号。
的Json
//other code above
else{
$_SESSION['id'] = $row['id'];
if ($role == 'admin') {
header("Location: admin.php");
} else if ($role == 'editor') {
header("Location: editor.php");
} else if ($role == 'user') {
header("Location: user.php");
}
//other code below
我只需从客户ID 5886708366中提取并使用本案例中的最后一个作业编号636275415626921919c。
到目前为止,我有以下内容。
[{"CustId":"5886708366","JobNumber":"636275400282798443c"},{"CustId":"123456798","JobNumber":"636275400535607074c"},{"CustId":"5886708366","JobNumber":"636275413000246135c"},{"CustId":"5886708366","JobNumber":"636275415626921919c"},{"CustId":"5926680270","JobNumber":"636275435491908861c"},{"CustId":"5926680270","JobNumber":"636275436824699429c"},{"CustId":"5926680270","JobNumber":"636275440818384096c"}]
我坚持要完成最后一部分。我能够循环完成工作,但不能只调用最后一个。任何帮助都会很棒。
答案 0 :(得分:1)
如果您确定您只需要最后一项,您就可以这样:
var lastItem = json[json.length - 1];
如果您事先知道客户ID,可以使用find方法,如果客户可能并不总是位于数组的最后位置,那么这将更好
var customer = json.find(val => val.CustId === '5926680270')
答案 1 :(得分:1)
尝试反向循环遍历数组以获取最新版本。
for (var i = length - 1; i > 0; i--) {
if (json[i].CustId == {{ customer.id }}) {
}
}
答案 2 :(得分:1)
在阵列中获取最后请求的CustId
的方法如下:
var json = JSON.parse('[{"CustId":"5886708366","JobNumber":"636275400282798443c"},{"CustId":"123456798","JobNumber":"636275400535607074c"},{"CustId":"5886708366","JobNumber":"636275413000246135c"},{"CustId":"5886708366","JobNumber":"636275415626921919c"},{"CustId":"5926680270","JobNumber":"636275435491908861c"},{"CustId":"5926680270","JobNumber":"636275436824699429c"},{"CustId":"5926680270","JobNumber":"636275440818384096c"}]');
var lastObj = json.reverse().find(obj => obj.CustId == "5926680270");
console.log(lastObj.JobNumber);

反转JSON数组,找到包含customerId
的对象,并获取其jobNumber
,非常简单的单行。