【问题标题】:How to extract the values from a Json Array in ballerina 0.982.0如何从芭蕾舞演员 0.982.0 中的 Json 数组中提取值
【发布时间】:2019-01-12 16:15:10
【问题描述】:

我从数据库收到一个查询结果为 [{"id":}]。当我尝试如下捕获这个“id”值时,它返回一个空值。

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”值的建议都会有所帮助。

【问题讨论】:

    标签: javascript json ballerina


    【解决方案1】:

    因为它是一个 JSON 数组,所以你必须使用索引来访问它,然后你可以使用 key 来选择所选择的 JSON 的元素。

    示例:这会选择 JSON 数组的初始 JSON 并获取它的 idjsonResult[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

    【讨论】:

    • @idclakmal 得到一个错误为'error:... mismatched input'.'。期待 '=>'' 行'json jsonResult.getJsonArray()=>{'。
    • @NipunaDilhara 更新了代码。请您现在检查一下。
    • @idclakmal 答案很好。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多