Получить и сохранить только первую JSON в 2 файлах JSON в Nodejs - PullRequest
0 голосов
/ 13 июля 2020

Я использую следующее, чтобы извлечь данные из api веб-сокета, затем записать их в консоль и сохранить как файл. Проблема в том, что файл не распознается как json, потому что ответ сервера дает мне 2 jsons, разделенных разрывом строки в том же файле.

Меня интересуют только данные во втором json as первый - только ответ аутентификации.

const WebSocket = require('ws');


var connection = new WebSocket('wss://api.xxxxxx.com.br/WS')
connection.onopen = function() {

  const info1 = {
  "UserName": "-----",
  "Password": "-----"
}


  const tosenda = {
    'm': 0,
    'i': 2,
    'n': 'Authenticate',
    'o': JSON.stringify(info1)
  }

  connection.send(JSON.stringify(tosenda))


const info2 = {
  "Id": XXX,
  "AccountId": YYY,
}

const tosendb = {
  'm': 0,
  'i': 2,
  'n': 'GetData',
  'o': JSON.stringify(info2)
}

connection.send(JSON.stringify(tosendb))

};

connection.onerror = function(error) { console.error('error!!', error) };


connection.onmessage = function(msg) { console.log(JSON.parse(msg.data)['o']) };

var http = require ('http');
var fs = require('fs');
var util = require('util');
var log_file = fs.createWriteStream(__dirname + '/filename.json', {flags : 'w'});
var log_stdout = process.stdout;

console.log = function(d) { //
log_file.write(util.format(d) + '\n');
log_stdout.write(util.format(d) + '\n');
 };

Вот как выглядит мой json:

{ "Authenticated": true, "SessionToken":"xxxxxxxxxx", "UserId": xxxxxxx, "twoFaToken":"" }
[{"Id":1,"AccountId":2,"AccountName":"Deposit","Product":"XXX","ProductId":1 // and so it goes

Любые идеи о том, как получить, сохранить только ту часть, которая начинается с "[{" Id ": ..."?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...