Horray - got the ColdFusion to Binance API working.
Binance API Result has an Array Inside the JSON Structure.
Trying to pull the Fills data. But not having best luck.
<cfset result = '{"symbol":"SHIBUSDT","orderId":1158141049,"orderListId":-1,"clientOrderId":"tAMnbc6XLKEMNFENUdbNvD","transactTime":1645634941287,"price":"0.00000000","origQty":"784913.00","executedQty":"784913.00","cummulativeQuoteQty":"20.72170320","status":"FILLED","timeInForce":"GTC","type":"MARKET","side":"SELL","fills":[{"price":"0.00002640","qty":"784913.00","commission":"0.02072170","commissionAsset":"USDT","tradeId":291444301}]}'>
The array I need starts at the fills with the structure inside it:
,"fills":[{"price":"0.00002640","qty":"784913.00","commission":"0.02072170","commissionAsset":"USDT","tradeId":291444301}]
Starting with this as easy display of the JSON result to easily get the symbol, side, etc...
<cfscript>
record = deserializeJSON(#result#);
writeOutput( "<br>SYMBOL:"& record.symbol);
writeOutput( "<br>SIDE:"& record.side);
</cfscript>
Kinda trying this to get the Fills Array Data but no luck...
<cfoutput>
<cfset arrayOfStructs = deserializeJson(result[fills])>
<cfloop array="#arrayOfStructs#" index="retdata">
<cfset Price = retdata.price />
<cfset QTY = retdata.qty />
#price#
<br>#qty#
</cfloop>
</cfoutput>
Should be an easy thing. Perhaps my brain is burned from all the API fights I've had.
You're very close, but no need to deserialize twice. Just use the existing
recordvariable. Sinceresult[fills]is already a CF array, just loop through it:Update 2/29/2022: Note about Error Handling
You may have omitted cfhttp error handling for brevity, but if not ... it's always a good practice to verify the http call was actually successful (and that it contains the expected JSON string) before attempting to do anything with the response. Otherwise, the code may crash with an cryptic error if the web service is experiencing problems. Putting it all together ...