Ballerina开发服务返回JSON嵌套value字段不符合预期怎么解决?
问题原因
- Ballerina 中
stream类型的next()方法返回结构为record {| record{} value; |}?|error,实际查询到的行记录被封装在返回结果的value字段中。你当前直接返回next()的完整执行结果,就会出现外层多一层value包裹的情况,和预期返回结构不符。
解决方法
调整代码取出 next() 返回结果中的 value 字段返回即可,同时建议补充错误和空结果的兼容逻辑,避免运行异常:
stream<record{}, error> resultStream = jdbcClient->query(`SELECT * FROM user where username = ${username} and password= ${password} and acctype= ${acctype} and accessright=1;`); record {} |error? result = resultStream.next(); // 处理查询异常 if result is error { return result; } // 处理无匹配查询结果的场景 if result is () { return error("未查询到匹配的用户信息"); } // 直接返回封装的实际用户记录 return result.value;
内容的提问来源于stack exchange,提问作者Mohamed Taleb
相关产品推荐
相关产品推荐

