我遇到了一个问题,从sql查询到api的使用。所以,我开始做我的sql语句正在做的事情。但由于某些原因,它正在检索所有的工作状态、工作级别和薪资等级。然而,我的预期结果应该是,当我从json或数据库中删除一个类似于0707的作业类时,它会在我的屏幕上显示缺少该作业类如果没有缺少任何作业类,那么它只会显示一个结构(空)。有人能告诉我我的代码哪里做错了吗?谢谢你的帮助。
sql语句:
select distinct job_class, PAY_GRADE
from app.my_databaseFone
where job_status like 'Active'
order by job_class
代码:
<cffunction name="my_api"
access="private"
description="my api data">
<cfset qFullmyApi = fileRead("C:\Users\Desktop\myjson.json")>
<cfset jsonData = deserializeJSON(qFullmyApi) />
<cfscript>
myAPIOutput = {};
for (item in jsonData) {
if (structKeyExists(myAPIOutput, item.jobStatus)) {
matchedValue = false;
for (i=1; i <= arrayLen(myAPIOutput[item.jobStatus]); i=i+1) {
if (item.jobClass == myAPIOutput[item.jobStatus][i].job_class
&& item.payGrade == myAPIOutput[item.jobStatus][i].pay_grade) {
matchedValue = true;
break;
}
}
if (matchedValue == false) {
arrayAppend(myAPIOutput[item.jobStatus], {"JOB_CLASS":item.jobClass,
"PAY_GRADE": item.payGrade});
}
} else {
myAPIOutput[item.jobStatus] = [{"JOB_CLASS":item.jobClass,
"PAY_GRADE": item.payGrade}];
}
}
return myAPIOutput;
</cfscript>
</cffunction>
1条答案
按热度按时间vlju58qv1#
在你的
WHERE
子句,您筛选job_status like 'Active'
(顺便说一句,不需要like
这里,使用=
但是在coldfusion代码中没有类似的过滤器。myAPIOutput
将包括所有job_status
类型不只是Active
一个。只需显示myAPIOutput['Active']
这应该与您的sql查询相匹配。如果根本没有工作,myAPIOutput['Active']
不存在