Hi,
I am trying to build a JSON object using UDO functions. How do I format numeric values to display 2 decimal values, by default the output is either an integer or 6 decimals. Below is a snippet of test code and the output generated:
name = "capitalBalance"
value = 672.500
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
name = "amountAvailable"
value = "617.00"
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
name = "arrears"
value = 77617.00
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
name = "advance"
value = 0.00
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
name = "interestAccrued"
value = 0.27
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
name = "installmentDue"
value = "15437.01"
OBJNAME = udoHeaderData
GOSUB BUILD_JSON_OBJECT
GOSUB TEST_AND_DISPLAY_OBJ
RETURN
BUILD_JSON_OBJECT:
ST = UDOSetProperty(OBJNAME, name, value) ; !GOSUB TEST_AND_DISPLAY_OBJ
RETURN
TEST_AND_DISPLAY_OBJ:
IF ST = UDO_SUCCESS THEN
ST = UDOWrite(udoHandle, UDOFORMAT_JSON, outputString)
CRT outputString
CRT
END ELSE
S = UDOGetLastError(errorCode, errorMessage)
CRT "There was an issue: "
CRT errorCode, errorMessage
END
RETURN
****
END
>>>>>OUTPUT<<<<<<
{
"message": {
"messageId": "6b9e8c54-4848-4059-9ba4-8ac8389aea8d",
"messageTimestamp": "2022-10-28-10.06.06.192843",
"version": 1,
"data": {
"accountNumber": 226688009,
"currency": "ZAR",
"capitalBalance": 672.500000,
"amountAvailable": 617,
"arrears": 77617,
"advance": 0,
"interestAccrued": 0.270000,
"installmentDue": 15437.010000
}
}
}
------------------------------
Rashid Hoosen
Developer
Investec Bank Limited
Sandton ZA
------------------------------





