Json 与 Ballerina 中的 Var 用法对比
Json vs Var usage in 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"
在 Ballerina 类型转换中 returns 所需类型和错误类型的联合类型。
参见:union type。这意味着 Ballerina 编译器推断的类型是
json|错误。
您必须使用匹配项并明确处理成功路径和失败路径。
var jsonConversionRet = <json>dt;
match (jsonConversionRet) {
json j => j.toString();
error err => io:println("error: " + err.message);
}
如果我们有一个如下声明的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"
在 Ballerina 类型转换中 returns 所需类型和错误类型的联合类型。 参见:union type。这意味着 Ballerina 编译器推断的类型是 json|错误。
您必须使用匹配项并明确处理成功路径和失败路径。
var jsonConversionRet = <json>dt;
match (jsonConversionRet) {
json j => j.toString();
error err => io:println("error: " + err.message);
}