芭蕾舞女演员Json vs Var的用法

时间:2018-07-26 06:10:18

标签: ballerina

如果我们有一个声明如下的json变量,我们可以直接使用.toString()。背后的逻辑是什么?

json a1 = {"a":"a", "b":"b"};
string c = a1.toString();

但是,如果我们声明了以下var,则不能使用.toString()。

table dt ;
...
var jsonConversionRet = <json>dt;
jsonConversionRet.toString(); // throws error "function invocation on type 'json|error' is not supported"

1 个答案:

答案 0 :(得分:1)

在Ballerina类型转换中,返回所需类型和错误类型的并集类型。 请参阅:union type。这意味着Ballerina编译器推断的类型是 json |错误。

您必须使用匹配项,并明确处理成功路径和失败路径。

var jsonConversionRet = <json>dt;
match (jsonConversionRet) {
    json j => j.toString();
    error err => io:println("error: " + err.message);
}