我从数据库收到一个查询结果,格式为[{“ id”:}]。当我尝试按以下方式捕获此“ id”值时,它将返回null。
var getClientIdResult=eaDBEndpoint->select(QUERY_GET_CLIENT_ID,(),accountId);
match getClientIdResult {
table queryResult => {
match <json>queryResult{
json jsonResult => {
clientId=check<int> jsonResult["id"];
} error e => return e;
}
} error e => return e;
}
我想这是因为JSON结果是作为JSON数组出现的,并且代码没有捕获JSON对象内部的“ id”值。
有关如何获取“ id”值的任何建议都会有所帮助。
答案 0 :(得分:3)
由于它是一个JSON数组,因此您必须使用索引对其进行访问,然后才能使用键来选择所选择的JSON的元素。
示例:这将选择JSON数组的初始JSON并获取其 id 。 jsonResult[0].id
var getClientIdResult = eaDBEndpoint->select(QUERY_GET_CLIENT_ID,(),accountId);
match getClientIdResult {
table queryResult => {
match <json>queryResult {
json jsonResult => {
clientId = check <int>jsonResult[0].id;
}
error e => return e;
}
}
error e => return e;
}
由于它会在发生错误时返回错误,因此您可以按如下方式简单地使用check
:
var getClientIdResult = eaDBEndpoint->select(QUERY_GET_CLIENT_ID,(),accountId);
table queryResult = check <table>getClientIdResult;
json jsonResult = check <json>queryResult;
clientId = check <int>jsonResult[0].id;
有关如何使用JSON数组的更多示例,请参考[1]。