2015-12-09 1 views
1

Je récupère une matrice de mémoire tampon dans un objet JSON lorsque j'appelle l'un de mes points de terminaison API. Je voudrais convertir ce tableau à une forme plus « utilisable » (? Hex) pour que je puisse les comparer, etc. Voici ce que l'objet ressemble actuellement:Comment convertir une matrice de mémoire tampon en hexadécimal?

"hash": { 
    "type": "Buffer", 
    "data": [ 
    151, 
    14, 
    51, 
    26, 
    46, 
    52, 
    5, 
    151, 
    99, 
    107, 
    38, 
    188, 
    138, 
    180, 
    76, 
    56, 
    108, 
    214, 
    135, 
    213, 
    125, 
    134, 
    105, 
    139, 
    129, 
    236, 
    206, 
    157, 
    67, 
    1, 
    12, 
    12 
    ] 
} 

Comment pourrais-je aller sur la conversion de ce tableau à un hex (ou une chaîne, etc.) afin que je puisse comparer les hachages?

Répondre

2

Vous pouvez simplement créer un nouveau buffer et le convertir dans le format dont vous avez besoin.

var o = {"hash": { 
"type": "Buffer", 
"data": [ 
    151, 
    14, 
    51, 
    26, 
    46, 
    52, 
    5, 
    151, 
    99, 
    107, 
    38, 
    188, 
    138, 
    180, 
    76, 
    56, 
    108, 
    214, 
    135, 
    213, 
    125, 
    134, 
    105, 
    139, 
    129, 
    236, 
    206, 
    157, 
    67, 
    1, 
    12, 
    12 
    ] 
} 
} 

console.log(new Buffer(o.hash,'hex').toString('hex')); 
// 970e331a2e340597636b26bc8ab44c386cd687d57d86698b81ecce9d43010c0c 
0

Utilisation Number.prototype.toString:

var json = '{"hash": {"type": "Buffer","data": [151,14,51]}}'; 
 
var parsed = JSON.parse(json); 
 
document.write("data: " + JSON.stringify(parsed.hash.data) + "<br>"); 
 
document.write("hex: "); 
 
parsed.hash.data.forEach(function(b) { document.write(("00" + b.toString(16)).substr(-2)); });