如何在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
相关产品推荐
相关产品推荐

