You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ballerina中访问含GROUP(date)类特殊键的JSON对象值

在Ballerina中,当JSON对象的键包含括号、空格这类不符合标识符命名规则的特殊字符时,不能直接使用.运算符访问,这类写法会被编译器识别为方法调用而非键访问,自然无法获取到对应的值。你可以通过以下两种方式实现取值:

方法1:方括号成员访问语法

直接将特殊键名以字符串形式放在方括号[]中访问即可,这是最通用的取值方式:

import ballerina/io;

public function main() returns error? {
    json values = {
        "GROUP(date)": "2019-09",
        "GROUP(account)": [
            {
                "value": "228",
                "text": "Subscription"
            }
        ],
        "SUM(amount)": "630.638"
    };

    // 访问特殊键对应的值
    string groupDate = check values["GROUP(date)"];
    json groupAccount = check values["GROUP(account)"];
    string sumAmount = check values["SUM(amount)"];

    io:println("GROUP(date)值:", groupDate);
    io:println("SUM(amount)值:", sumAmount);
}

如果明确知道值的类型,也可以用类型断言代替check:

string groupDate = <string> values["GROUP(date)"];

方法2:使用json类型的get()方法

如果需要处理键不存在的场景,不想额外处理错误,可以用自带的get方法指定默认返回值:

// 键不存在时会返回指定的默认值"2023-01",无需错误处理
string groupDate = values.get("GROUP(date)", "2023-01");

内容的提问来源于stack exchange,提问作者Buddhika Priyabhashana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:30:04