Я использую следующее, чтобы извлечь данные из 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 ": ..."?
Спасибо!