如何从芭蕾舞女演员0.982.0中的Json数组中提取值

时间:2019-01-12 16:15:10

标签: javascript json ballerina

我从数据库收到一个查询结果,格式为[{“ 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”值的任何建议都会有所帮助。

1 个答案:

答案 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]。

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