how write a json sync with extra-fs

I have a problem when I write different values with extra-fs.
I’m doing a casino game test on 20 simultaneous balances, except that it doesn’t seem to really work when I write it in my json.

So what happens is that as soon as I run my program, it executes 20 files, each with a different betting tactic, and as soon as I win or lose, it writes them to my json.
The only drawback is that as soon as I run it, it doesn’t work properly.
it doesn’t write well and also doesn’t change all the values at the same time.

Here’s my program, which writes 20 values simultaneously:

 async updateJson(mainValue, newValue) {
        if (!this.getJson) return ":(";

        try {
            const data = await fs.readFile(this.getJson, 'utf8');
            const balanceData = JSON.parse(data);
            balanceData[mainValue] = newValue;
      
            await fs.writeFile(this.getJson, JSON.stringify(balanceData, null, 2), 'utf8');
        } catch (err) {
            console.error("Error:", err);
        }
}

here’s the json before execution:

{
  "Balance1": 800,
  "Balance2": 800,
  "Balance3": 800,
  "Balance4": 800,
  "Balance5": 800,
  "Balance6": 800,
  "Balance7": 800,
  "Balance8": 800,
  "Balance9": 800,
  "Balance10": 800,
  "Balance11": 800,
  "Balance12": 800,
  "Balance13": 800,
  "Balance14": 800,
  "Balance15": 800,
  "Balance16": 800,
  "Balance17": 800,
  "Balance18": 800,
  "Balance19": 800,
  "Balance20": 800
}

after execution:

{
  "Balance1": 800,
  "Balance2": 800,
  "Balance3": 800,
  "Balance4": 800,
  "Balance5": 800,
  "Balance6": 800,
  "Balance7": 800,
  "Balance8": 800,
  "Balance9": 800.05,
  "Balance10": 800.1,
  "Balance11": 800,
  "Balance12": 800,
  "Balance13": 800,
  "Balance14": 800,
  "Balance15": 800,
  "Balance16": 800,
  "Balance17": 800,
  "Balance18": 800,
  "Balance19": 800,
  "Balance20": 800
}00
}

and my error:

Error: SyntaxError: ./Balance.json: Unexpected number in JSON at position 398
    at JSON.parse (<anonymous>)
    at Object.readFileSync (C:Users#DesktopSimulatorBetProjectnode_modulesjsonfileindex.js:52:17)
    at Bet.retrieveData (C:Users#DesktopSimulatorBetProjectbloCasinobetmainBet.js:12:36)
    at Americaine.bettingTactics (C:Users#DesktopSimulatorBetProjectbloCasinobetcrashamericaine.js:21:46)
    at Bet.betAlgo (C:Users#DesktopSimulatorBetProjectbloCasinobetmainBet.js:61:33)
    at startBetting (C:Users#DesktopSimulatorBetProjecttest.js:67:16)
    at startScript (C:Users#DesktopSimulatorBetProjecttest.js:239:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async C:Users#DesktopSimulatorBetProjecttest.js:37:17
Error: SyntaxError: ./Balance.json: Unexpected number in JSON at position 398
    at JSON.parse (<anonymous>)
    at Object.readFileSync (C:Users#DesktopSimulatorBetProjectnode_modulesjsonfileindex.js:52:17)
    at Bet.retrieveData (C:Users#DesktopSimulatorBetProjecttestbetmainBet.js:12:36)
    at contreAlembert.bettingTactics (C:Users#DesktopSimulatorBetProjecttestbetcrashcontreAlembert.js:15:46)       
    at Bet.betAlgo (C:Users#DesktopSimulatorBetProjecttestbetmainBet.js:61:33)
    at startBetting (C:Users#DesktopSimulatorBetProjecttest.js:77:16)
    at startScript (C:Users#DesktopSimulatorBetProjecttest.js:239:11)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async C:Users#DesktopSimulatorBetProjecttest.js:37:17...