2016-08-12 4 views
0

j'ai un problème avec mon objet j'ai utilisé la bibliothèque memored dans js nœud pour stocker des donnéesSyntaxError: jeton inattendu,

ceci est mes fonctions pour stocker les données

memored.store('driverList', list); 

et ce pour get cette liste de magasins ce code est

memored.read('driverList', function(err, list) { 
    var driver = list; 
}); 

après la liste get est comme dans l'exemple

var list = [ null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    null, 
 
    '{"phonenumber":"123123","client":{"index":"103.240.34.250:61667","sock":{"_connecting":false,"_handle":{"fd":20,"writeQueueSize":0,"owner":"[Circular]","reading":true},"_readableState":{"highWaterMark":16384,"buffer":[],"length":0,"pipes":null,"pipesCount":0,"flowing":false,"ended":false,"endEmitted":false,"reading":true,"calledRead":true,"sync":false,"needReadable":true,"emittedReadable":false,"readableListening":false,"objectMode":false,"defaultEncoding":"utf8","ranOut":false,"awaitDrain":0,"readingMore":false,"decoder":null,"encoding":null},"readable":true,"domain":null,"_events":{},"_maxListeners":10,"_writableState":{"highWaterMark":16384,"objectMode":false,"needDrain":false,"ending":false,"ended":false,"finished":false,"decodeStrings":false,"defaultEncoding":"utf8","length":0,"writing":false,"sync":false,"bufferProcessing":false,"writecb":null,"writelen":0,"buffer":[],"errorEmitted":false},"writable":true,"allowHalfOpen":false,"onend":null,"destroyed":false,"bytesRead":24,"_bytesDispatched":2,"_pendingData":null,"_pendingEncoding":"","server":{"domain":null,"_events":{},"_maxListeners":10,"_connections":1,"connections":1,"_handle":{"fd":17,"writeQueueSize":0,"owner":"[Circular]"},"_usingSlaves":false,"_slaves":[],"allowHalfOpen":false,"_connectionKey":"4:0.0.0.0:25001"},"_peername":{"address":"103.240.34.250","family":"IPv4","port":61667},"_consuming":true},"_actualLength":0,"_msg":[2,114,116,101,115,116,64,103,109,97,105,108,46,99,111,109,124,114,97,118,105,110,97],"_written":0,"driver":"[Circular]"},"online":true,"onDuty":true,"latitude":0,"longitude":0,"vehicle":"Sedan","id":1056,"fullname":"test01 test01","pendingRides":{},"ride":null,"rpm":"0","licensePlate":"dri123","logintime":1471025147}' ] 
 

 
var data = list.filter(Boolean).shift(); 
 
var list = JSON.parse(data) 
 
    
 
console.log(list.id) 
 
for (var elementId in list) { 
 
       driver = list[elementId]; 
 
       
 
       if(!driver.online || !driver.onDuty) continue; 
 
       driverLists.push({ 
 
        id: driver.id, 
 
        latitude: driver.latitude, 
 
        longitude: driver.longitude, 
 
        fullname: driver.fullname, 
 
        rpm: driver.rpm, 
 
        vehicle: driver.vehicle, 
 
        licensePlate: driver.licensePlate, 
 
        logintime: driver.logintime 
 
       }); 
 
      } 
 
console.log(driverLists);

je veux driver.id de cet objet mais lorsque je tente d'obtenir son moi et je me undefined aussi essayer avec JSON.parse (valeur) de sorte que son me faire SyntaxError: jeton inattendu,

alors comment puis-je obtenir id s'il vous plaît me donner si vous avez bonne solution pour ce problème

Répondre

0

driver est un tableau, et driver[15] est une chaîne. Vous voulez peut-être JSON.parse(driver[15]).id?

0

On dirait driver est un tableau, vu par les parenthèses [] dans la sortie, et l'objet est vraiment une chaîne.

d'abord se débarrasser de toutes les valeurs que vous null pour une raison quelconque avez, puis obtenir la chaîne et l'analyser, puis obtenir la valeur

var data = driver.filter(Boolean).shift(); 
var parsed = JSON.parse(data); 
var id  = parsed.id; 

FIDDLE

+0

@trusharwidetech - vous cherchez des choses qui ne sont pas là. Vous avez un seul pilote, mais vous essayez de boucler avec 'for ..in', ce qui ne fonctionnera pas -> ** https: //jsfiddle.net/aarLcLe9/** – adeneo

+0

quand j'ai plus d'un pilote à ce moment-là, c'est du travail? –

+0

Bien sûr, si les données sont complètement différentes, et vous avez un tableau de pilotes, cela fonctionne probablement? – adeneo