WSO2 Integration Studio数据服务项目MongoDB整数字段转JSON报错求助
解决WSO2 Integration Studio中MongoDB数值类型字段转JSON的报错问题
问题根源在于你在JSON结果模板里,用双引号包裹了数值类型的字段引用"$document.RoomCount",WSO2会强制将该字段值按字符串类型处理,但MongoDB返回的RoomCount是整数类型,类型不匹配导致报错。
以下是两种针对性解决方案:
方案1:保留原数值类型输出
直接去掉字段值的双引号,让WSO2保留MongoDB返回的原始数值类型:
<query id="MunicipalBuildingDetails" useConfig="MongoDb"> <expression>collectionName.find()</expression> <result outputType="json" escapeNonPrintableChar="true">{ Result: { Data: [{ "Col1":$document.RoomCount } ] } }</result> </query>
方案2:将数值转成字符串输出
如果业务需要把数值转为字符串返回,可通过MongoDB的聚合操作在查询阶段转换字段类型:
<query id="MunicipalBuildingDetails" useConfig="MongoDb"> <expression>collectionName.aggregate([{ $project: { RoomCount: { $toString: "$RoomCount" } } }])</expression> <result outputType="json" escapeNonPrintableChar="true">{ Result: { Data: [{ "Col1":"$document.RoomCount" } ] } }</result> </query>
根据你的业务需求选择对应方案即可:方案1适用于需要保留数值类型的场景,方案2适用于必须输出字符串类型的场景。
内容的提问来源于stack exchange,提问作者Ahmet Kalem
相关产品推荐
相关产品推荐

