如何从 ballerina 0.982.0 中的 Json 数组中提取值

How to extract the values from a Json Array in ballerina 0.982.0

我收到来自数据库的查询结果 [{"id":}]。当我尝试如下捕获此 'id' 值时,它 returns 为 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' 值的任何建议都会有所帮助。

因为它是一个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;
}

因为它 returns 错误,如果它发生你可以简单地使用 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]。

[1] https://ballerina.io/learn/by-example/json-arrays.html