JSON Ballerina 中 int 与 float 转换的最佳实践
JSON int vs float conversion best practices in Ballerina
我正在实施一个带有输入的简单服务,其中
{ "a": <float>, "b": <float>, "operation": <string>}
现在,我两个都想要
"a": 10
和
"a": 10.0
上班。如果我只检查浮动大小写,我会得到
error: error, message: 'int' cannot be cast to 'float'
我收到请求并执行以下操作
json operationReq = check req.getJsonPayload();
float a = 0;
var intInput = <int>operationReq.a;
match intInput {
int value => a = value;
error err => a = check <float>operationReq.a;
}
以上代码有效。但这是正确的做法,还是黑客行为?
对于您的问题,我建议采用以下解决方案。您对 j.a
的值进行了类型转换。
import ballerina/io;
function main(string... args) {
json j = { "a": 10.0, "b": 4, "operation": "ddd"};
float a = 0;
var intInput = j.a;
match intInput {
int i => a = i;
float f => a = f;
json other => {} //error
}
}
我正在实施一个带有输入的简单服务,其中
{ "a": <float>, "b": <float>, "operation": <string>}
现在,我两个都想要
"a": 10
和
"a": 10.0
上班。如果我只检查浮动大小写,我会得到
error: error, message: 'int' cannot be cast to 'float'
我收到请求并执行以下操作
json operationReq = check req.getJsonPayload();
float a = 0;
var intInput = <int>operationReq.a;
match intInput {
int value => a = value;
error err => a = check <float>operationReq.a;
}
以上代码有效。但这是正确的做法,还是黑客行为?
对于您的问题,我建议采用以下解决方案。您对 j.a
的值进行了类型转换。
import ballerina/io;
function main(string... args) {
json j = { "a": 10.0, "b": 4, "operation": "ddd"};
float a = 0;
var intInput = j.a;
match intInput {
int i => a = i;
float f => a = f;
json other => {} //error
}
}