2011-07-04 143 views
0

我有以下格式的json。幫助JQuery自動完成

[{"tag":{"name":"& Awards","id":142}},{"tag":{"name":"& Bisexual Bars","id":207}},{"tag":{"name":"& Clubs","id":40}},{"tag":{"name":"& Imaging","id":1188}}} 

和我用下面的代碼

$("#tags_name").autocomplete({ 
    source: "/companies/autocomplete_tags2.json", 
    width: 320, 
    dataType: 'json', 
    highlight: false, 
    scroll: true, 
    scrollHeight: 300, 
    parse: function(data) { 
    var array = new Array(); 
    for(var i=0; i < data.tag.length; i++){ 
     array[i] = {data: data.tag[i], value: data.tag[i].value, result: data.tag[i].id }; 
    } 
    return array; 
    } 
}); 

當網頁加載完畢後我得到的錯誤是「newUncaught語法錯誤:輸入意外結束」

我失去的是什麼?

+0

哪條線拋出了錯誤? – Dogbert

回答

1

您的解析函數對於您擁有的JSON是錯誤的。你在JSON中有一個對象數組。

它應該是這樣的

parse: function(data) { 
    var array = new Array(); 
    for(var i=0; i < data.length; i++){ 
     array[i] = {data: data[i].tag, value: data[i].tag.name, result: data[i].tag.id }; 
    } 
    return array; 
    } 
+0

這似乎已經解決了部分問題。 –

+0

'看來我得到的json不是正確的mime類型。 def autocomplete_tags2 items = Tag.find(:all,:select =>「name,id」) items.map!做| item | {:label => item.name,:value => item.id} end render:json => items.to_json end' –