我正在使用名为“Easy Auto Complete”的整洁自动完成程序。
该程序运行良好,但我对如何引用深层嵌套节点集感到困惑。运行show的javascript使用标记为“listlocation”的属性,该属性将嵌套在JSON提要的根目录之外的值。
但是,当尝试从“播放器”数据集中提取数据(例如ID)时,我没有成功(开发人员工具告诉我我没有收到数据)。我曾经尝试过“玩家”,“playerstatsentry.player”,“cumulativeplayerstats.playerstatsentry”和其他变种。
当我使用JSON Feed时,其中值位于根或ONE级别(根据the documentation),该功能非常有效。
引用播放器数组以获取ID值的最佳方法是什么?
JSON
{
"cumulativeplayerstats": {
"lastUpdatedOn": "2018-02-13 1:59:59 PM",
"playerstatsentry":
[
{ "player": { "ID": "5107" } }
....
JAVASCRIPT
var options = {
url: "assets/data.json",
listLocation: "cumulativeplayerstats.playerstatsentry.player",
getValue: "LastName"
list: {
match: {
enabled: true
}
}
};
$("#provider-json").easyAutocomplete(options);
答案 0 :(得分:3)
该插件需要一组object
和一个property
名称,该名称将用作自动填充帮助。您需要逻辑重构data.json
文件:
案例1:当JSON
结构为
{
"cumulativeplayerstats": {
"lastUpdatedOn": "2018-02-13 1:59:59 PM",
"playerstatsentry": [
{
"player": {
"ID": "5106"
},
"LastName": "Test 1"
},
{
"player": {
"ID": "5107"
},
"LastName": "Test 2"
},
{
"player": {
"ID": "5108"
},
"LastName": "Test 3"
}
]
}
}
使用自动完成配置:
<input id="provider-json" />
<script>
var options = {
url: "assets/data.json",
listLocation: function(data) {
return data.cumulativeplayerstats.playerstatsentry;
},
getValue: "LastName",
list: {
match: {
enabled: true
}
}
};
$("#provider-json").easyAutocomplete(options);
案例2:因为getValue
属性也支持此插件中的功能。如果JSON
结构如下:
{
"cumulativeplayerstats": {
"lastUpdatedOn": "2018-02-13 1:59:59 PM",
"playerstatsentry": [
{
"player": {
"ID": "5106",
"LastName": "Test 1"
}
},
{
"player": {
"ID": "5107",
"LastName": "Test 2"
}
},
{
"player": {
"ID": "5108",
"LastName": "Test 3"
}
}
]
}
}
使用自动填充代码:
var options = {
url: "assets/data.json",
listLocation: function(data) {
return data.cumulativeplayerstats.playerstatsentry;
},
getValue: function(item) {
return item.player.LastName;
},
list: {
match: {
enabled: true
}
}
};
$("#provider-json").easyAutocomplete(options);
希望这会有所帮助!!