Search code examples
google-apps-scriptgoogle-sheetsbinancebinance-api-client

JSON to cell google sheet array work but object not working by binanace API


this is Response:

{
 "makerCommission": 15,
 "takerCommission": 15,
 "buyerCommission": 0,
 "sellerCommission": 0,
 "canTrade": true,
 "canWithdraw": true,
 "canDeposit": true,
 "updateTime": 123456789,
 "accountType": "SPOT",
 "balances": [
   {
  "asset": "BTC",
  "free": "4723846.89208129",
  "locked": "0.00000000"
   },
   {
  "asset": "LTC",
  "free": "4763368.68006011",
  "locked": "0.00000000"
   }
            ],
  "permissions": [
  "SPOT"
  ]
 }

This is my code :

   var jsonResponce = JSON.parse(data); // To JSON
   Logger.log(jsonResponce.accountType); // Return SPOT

   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = ss.getActiveSheet();
   var rows = [],
       balanc;

  for (i = 0; i < jsonResponce.length; i++) {
     balanc = jsonResponce[i];
     rows.push([balanc.accountType]);
    }
  Logger.log(rows); /////////////// return []  why not return SPOT
  dataRange = sheet.getRange(1, 1, rows.length, 1);
  dataRange.setValues(rows);

The JSON return accountType if run without array but after add in array give me [] empty any help pls.

this is picture:

enter image description here


Solution

  • function myfunk() {
      const data = '{"makerCommission":15,"takerCommission":15,"buyerCommission":0,"sellerCommission":0,"canTrade":true,"canWithdraw":true,"canDeposit":true,"updateTime":123456789,"accountType":"SPOT","balances":[{"asset":"BTC","free":"4723846.89208129","locked":"0.00000000"},{"asset":"LTC","free":"4763368.68006011","locked":"0.00000000"}],"permissions":["SPOT"]}';
      const obj = JSON.parse(data);
      const ss = SpreadsheetApp.getActive();
      const sh = ss.getSheetByName('Sheet1');
      const vs = obj.balances;
      const oA = vs.map(obj => [obj.asset,obj.free,obj.locked]);
      sh.getRange(1,1,oA.length, oA[0].length).setValues(oA);
    }
    

    Sheet1:

    Col1 Col2 Col3
    BTC 4723846.892 0
    LTC 4763368.68 0