Ballerina中的JSON int vs float转换最佳实践

时间:2018-06-03 16:25:10

标签: 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;
}

以上代码有效。但这是正确的做法,还是这是一个黑客?

1 个答案:

答案 0 :(得分:2)

我建议您提出以下解决方案。您对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
    }
}