javascript - 用 json 填充下拉列表(SyntaxError: Unexpected token { in JSON..)
问题描述
我试图用styleName
我的 JSON 数据文件中的字段值简单地填充一个下拉列表。
例如,我的 json 数据如下所示:
{"name":{"styleName":"name","fillType":"none","fillTrans":"0","outlineType":"solid","outlineWidth":"1","outlineColor":"#ff0000"}}
{"sarah":{"styleName":"sarah","fillTrans":"none","fillTrans":"0","outlineType":"solid","outlineWidth":"1","outlineColor":"#ff0000"}}
//....
下面是我的 JS。
let dropdown = document.getElementById('tem');
dropdown.length = 0;
let defaultOption = document.createElement('option');
defaultOption.text = 'Choose Template';
dropdown.add(defaultOption);
dropdown.selectedIndex = 0;
const urld = '../../templates.json';
fetch(urld)
.then(
function(response) {
if (response.status !== 200) {
console.warn('Looks like there was a problem. Status Code: ' +
response.status);
return;
}
// Examine the text in the response
response.json().then(function(data) {
let option;
console.log(data);
for (let i = 0; i < data.length; i++) {
option = document.createElement('option');
option.text = data[i].styleName;
//option.value = data[i].abbreviation;
dropdown.add(option);
}
});
}
)
.catch(function(err) {
console.error('Fetch Error -', err);
});
尽管有响应,但我不断收到此错误200
,下拉列表仍然为空白..
错误:
Uncaught (in promise) SyntaxError: Unexpected token { in JSON at position xxx
Promise.then (async)
(anonymous) @ VM8493:22
Promise.then (async)
(anonymous) @ VM8493:13
下拉标记就是这样:
<select id="tem" class='w150'>
</select>
解决方案
replace this option.text = data[i].styleName;
let keys=Object.keys(data[i])
with option.text = data[i][keys[0]].styleName
推荐阅读
- android - RxJava 映射在 Kotlin 中产生不同的返回类型
- swift - 无论点击什么按钮,代码都会向左或向右打印
- mysql - 如何对多个记录使用 ON DUPLICATE KEY 为每个记录(如果不存在)创建一个新记录
- arm - 在 ARM STM32G030K6 上启用 GPIO
- powerbi - Power BI 中具有多个表的数据模型,每个表都有一个 FK
- c - 在 Windows 上使用绑定到同一端口的 UDP 套接字时出现问题
- php - 使用 url 嵌入 soundcloud 播放器
- java - 使用 RxJava 观察列表“添加”和“删除”操作
- bash - 遍历文件夹内的特定子文件夹并删除包含特定名称的文件 - AIX
- php - mysqli_connect(): (HY000/1049): 未知数据库