javascript - JSON object not processing -


i'm having problem processing json object. page has form has dropdown when select truck number rest of form suppose filled data coming json file.

here sample of data

  [    {      "trucknum":"62-559",      "description":"moffet truck",      "driver":"kevin conroy",      "status":"ok",      "dateout":"",      "repairs":"",      "dateback":"",      "location":"berlin"    },    {      "trucknum":"m-28",      "description":"moffet",      "driver":"moffet",      "status":"ok",      "dateout":"",      "repairs":"",      "dateback":"",      "location":"berlin"    },    {      "trucknum":"62-443",      "description":"20' dump",      "driver":"",      "status":"ok",      "dateout":"",      "repairs":"",      "dateback":"",      "location":"berlin"    },    {      "trucknum":"sub",      "description":"",      "driver":"mark trainer",      "status":"ok",      "dateout":"",      "repairs":"",      "dateback":"",      "location":"berlin"    }   ] 

here page code. using jade expressjs backend.

  extends layout    block content     div(class='container')       header        h1 national lumber co. / reliable truss & component        h2 fleet maintenance administration     div(class='section')        h3 edit truck        form(role='form' id='formfield' method='post')          div(class='form-group')            div(class='well well-lg')              label(for='vehicleno') vehicle number edited              select(class='form-control' id='vehicleno' name='vehicleno')                option(value='default') -- select 1 --              label(for='edityard') yard              select(class='form-control' id='edityard' name='location')                option(value='default') -- select 1 --              label(for='editvehicleno') vehicle number              input(type='text' id='editvehicleno' class='form-control'      name='trucknum')              label(for='editvehicledesc') vehicle description              input(type='text' id='editvehicledesc' class='form-control' name='description')              label(for='editdrivername') driver name              input(type='text' id='editdrivername' class='form-control' name='driver')              label(for='editstatus') status              select(id='editstatus' class='form-control' name='status')               option(value='default') -- select 1 --              label(for='editdateout') date out of service              input(type='text' id='editdateout' class='form-control' name='dateout')              label(for='editdateback') est. date in service              input(type='text' id='editdateback' class='form-control' name='dateback')              label(for='editrepairs') repairs being done              input(type='text' id='editrepairs' class='form-control' name='repairs')            button(type='submit' name='edit' id='edit' class='btn btn-primary') edit     script       |var v;       |var t;       |var trucks;       |var stat;       |var uniquelocations = [];       |var uniquestatus = [];       |var y;       |$(document).ready(function(){       |  $.getjson('/components/trucks.json', function(data){       |    trucks = data;       |    data = sortbylocation(data, 'trucknum');       |    var htmltrucknum = '';       |    var htmlyard = '';       |    var htmlstatus = '';       |    var len = data.length;       |    (var = 0; i< len; i++) {       |      htmltrucknum += '<option value="' + data[i].trucknum + '">' + data[i].trucknum + '</option>';       |    }       |    $('select#vehicleno').append(htmltrucknum);       |    trucks = sortbylocation(trucks, 'location');       |    for(var = 0; < trucks.length; i++){       |      if(uniquelocations.indexof(trucks[i].location) === -1){       |        uniquelocations.push(trucks[i].location);       |      }       |    }       |    for(var j = 0; j < uniquelocations.length; j++){       |      htmlyard += '<option value="' + uniquelocations[j] + '">' + uniquelocations[j] + '</option>';       |    }       |    $('select#edityard').append(htmlyard);       |    stat = sortbylocation(trucks, 'status');       |    for(var = 0; < trucks.length; i++){       |      if(uniquestatus.indexof(trucks[i].status) === -1){       |        uniquestatus.push(trucks[i].status);       |      }       |    }       |    for(var x = 0; x < uniquestatus.length; x++){       |      htmlstatus += '<option value="' + uniquestatus[x] + '">' +         uniquestatus[x] + '</option>';       |    }       |    $('select#editstatus').append(htmlstatus);       |  });       |}); 

the on change section isn't working right. uncaught syntaxerror: unexpected token o @ | var obj = jquery.parsejson(trucktoedit);

if take out , y = trucktoedit.location undefined

at console.log(trucktoedit) devtools console

  [object]0: objectdateback: ""dateout: ""description: "20' dump"driver:    ""location: "oxford"repairs: ""status: "ok"trucknum: "99-999"__proto__:   objectlength: 1__proto__: array[0] 

not sure doing wrong.

      |$("select#vehicleno").on('change', function () {       |  v = document.getelementbyid("vehicleno");       |  t = v.options[v.selectedindex].text;       |  var trucktoedit = trucks.filter(function(item) {       |    return item.trucknum == t;       |  });       |  console.log(trucktoedit);       |  var obj = jquery.parsejson(trucktoedit);       |  console.log(obj.location);       |  document.getelementbyid('editvehicledesc').value = y;       |});        |function sortbylocation(array, key){       |  return array.sort(function(a, b){       |   var x = a[key];       |   var y = b[key];       |   return ((x < y) ? -1 : ((x > y) ? 1 : 0));       |  });       |} 

thanks kevin, comment lead me @ devtools showing me. though showed [object]0: objectdateback: ""dateout: ""description: "20' dump"driver: ""location: "oxford"repairs: ""status: "ok"trucknum: "99-999"proto: objectlength: 1__proto__: array[0] seeing array 1 index. told treat array each property out of it. example var obj0 = trucktoedit[0].location , put in document.getelementbyid('edityard').value = obj0


Comments