es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Decodificación de bytes variantes de Godot a un objeto en Javascript

Estoy tratando de deserializar un arreglo de bytes que creo que es un arreglo Uint8 de Godot hacia un objeto JavaScript en un proceso de nodo.

Mi implementación actual es la siguiente:

const message = Buffer.from(buffer.data, 'ascii');
console.log('message', message.toString('utf8'));

Esto está mostrando algo como: �a@

¿Cómo puedo deserializar este objeto sin usar bytes2var de Godot en un proceso de nodo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para deserializar una matriz de bytes (Uint8Array) desde Godot a un objeto JavaScript en un proceso de nodo, puedes usar el objeto Buffer incorporado en Node.js para convertir Uint8Array a una cadena y luego analizarla con JSON.parse(). Aquí tienes un ejemplo de implementación:

    const buffer = /* tu matriz Uint8Array desde Godot */;
    
    const str = Buffer.from(buffer).toString('utf8');
    const obj = JSON.parse(str);
    
    console.log(obj);
    

    El código anterior primero convierte la matriz Uint8Array en una cadena usando Buffer.from(). El argumento ‘utf8’ especifica la codificación que se utilizará al convertir el búfer en una cadena.

    Una vez que el búfer se ha convertido en una cadena, podemos analizarlo como JSON utilizando JSON.parse(). Esto nos dará un objeto JavaScript con el que podemos trabajar como de costumbre.

    Ten en cuenta que esto asume que los datos en tu matriz Uint8Array están en formato JSON. Si están en otro formato, deberás ajustar el código para analizarlos correctamente.

Comments are closed.