Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

147
Views
Leer contenido binario big endian usando angular

Tengo una API de terceros que devuelve un conjunto de datos binarios que se convierte mediante BigEndian (confirmado). El conjunto de datos consiste en un conjunto de estudiantes con su nombre e identificación.

Estoy tratando de leer el contenido y actualizar el almacenamiento local en este momento y escribí un archivo javascript para leer los datos y mostrarlos en una consola como la siguiente.

 var pointer = 0; var XMLHttpRequest = require('xhr2'); var xhr = new XMLHttpRequest(); xhr.open("GET", "https://api.test.com/students", true); xhr.onload = function () { var data = xhr.response; pointer++; // Read students var classesCount = data.readUInt32BE(pointer); pointer+=4; console.log('classesCount:' + classesCount); for (let classId = 0; classId < classesCount; classId++) { var classNameLength = data.readUInt8(pointer); pointer++; var classNameUTF8 = data.slice(pointer, pointer + classNameLength); pointer += classNameLength; var className = new TextDecoder().decode(classNameUTF8); console.log(className); // display students per class var classStudentCount = data.readUInt32BE(pointer); pointer += 4; //console.log('Class Students: ' + classStudentCount); for (let classStudentId = 0; classStudentId < classStudentCount; classStudentId++) { var studentIdLength = data.readUInt8(pointer); pointer++; var studentIdUTF8 = data.slice(pointer, pointer + studentIdLength); pointer += studentIdLength; var studentId = new TextDecoder().decode(studentIdUTF8); var studentNameLength = data.readUInt8(pointer); pointer++; var studentNameUtf8 = data.slice(pointer, pointer + studentNameLength); pointer += studentNameLength; var studentName = new TextDecoder().decode(studentNameUtf8); pointer += 4; console.log(studentId + ' - ' + studentName); } } }; xhr.setRequestHeader( "Authorization", "Bearer {token}" ); xhr.send();

Para aplicar esto en angular, probé con DataView, que admite BigEndian, pero no pude leer el contenido, lo que hice usando el código anterior.

 var res = req.response; var buffer = new ArrayBuffer(res.length); var view = new DataView(buffer); console.log('Version: ' + view.getUint8(offset)); offset++; var classCount = view.getUint32(offset); offset += 4; console.log(classCount);

Aparte de eso, probé Smart Buffer , pero cuando intento dividir los datos, la función de división no es compatible con Smart Buffer.

¿Qué estoy haciendo mal aquí? ¿Alguien puede señalar el error?.

Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!