2017-08-07 5 views
1

Ich versuche, die folgende JSON-String parsen (erzeugt und zurückgegeben vom Server) mit JSON.parse:JSON.parse Rückkehr unerwartetes Token

[{"id":1,"username":"klebermo","password":"$2a$04$YYqryKrcmUQfwmbsnhA1Te0FghiYsirxVq.Wf.kChjpEm/uuky.fu","firstName":"Kleber","lastName":"Mota","email":"[email protected]","credenciais":[{"id":1,"nome":"user","autorizacoes":[{"id":1,"nome":"user","authority":"user"}]},{"id":2,"nome":"admin","autorizacoes":[{"id":2,"nome":"admin","authority":"admin"}]}],"enabled":true,"credentialsNonExpired":true,"accountNonLocked":true,"accountNonExpired":true,"authorities":[{"id":1,"nome":"user","authority":"user"},{"id":2,"nome":"admin","authority":"admin"}]}] 

aber ich habe diesen Fehler:

Uncaught SyntaxError: Unexpected token o in JSON at position 1 
at JSON.parse (<anonymous>) 
at Object.success ((index):186) 
at i (jquery-3.2.1.min.js:2) 
at Object.fireWith [as resolveWith] (jquery-3.2.1.min.js:2) 
at A (jquery-3.2.1.min.js:4) 
at XMLHttpRequest.<anonymous> (jquery-3.2.1.min.js:4) 

Mein Javascript Code wo dieses Parsing shappens:

<script th:inline="javascript"> 
/*<![CDATA[*/ 
var atributos = []; 

$('.col').each(function(){ 
    var prop = $(this).data('prop'); 
    atributos.push(prop); 
}); 

var url = '/' + $('.list').data('list') + '/list.json'; 

$.get(url, function(data){ 
    var json = JSON.parse(data); 

    $.each(json.item, function(index, item){ 
     var row = $('<tr id='+item.id+'>'); 

     for(var i=0; i<atributos.length; i++) { 
      if(atributos[i] == '#') { 
       row.append('<td></td>'); 
      } else if(atributos[i] == '.') { 
       var col = $('<td>'); 
       col.append('<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#modal_update">editar</button>'); 
       col.append('<button type="button" class="btn btn-primary btn-lg" class="remover" data-target="'+item.id+'">remover</button>'); 
       row.append(col); 
      } else { 
       row.append('<td>'+item[atributos[i]]+'</td>'); 
      } 
     } 

     $('table.table').find('tbody.list').append(row); 
    }); 
}); 
/*]]>*/ 
</script> 

Wenn ich den JSON-String in mehr json Validierung Websites versuchen, validieren und Es wird kein Fehler angezeigt. Der JSON wird im Browser-Entwickler-Tool auf der Registerkarte "Netzwerk" aufgelistet, und es wird auch korrekt angezeigt.

Jeder kann einen Hinweis geben, was hier falsch sein könnte?

+2

jQuery macht das Parsen für Sie. – Pointy

+0

Dieses JSON-Objekt hat am Ende zu viele eckige Klammern, ist das ein Tippfehler? – Tim

+0

@Tim ja, war es. Korrigiere es schon. –

Antwort

3

Es ist bereits ein Objekt. Keine Notwendigkeit, es zu analysieren. o an Position 1 ist das zweite Symbol von [object Object].