gpt4 book ai didi

javascript - 如何修复 json 代码作为对象对象进入 html 下拉列表

转载 作者:行者123 更新时间:2023-12-01 00:38:43 24 4
gpt4 key购买 nike

我有一个 InDesign 脚本的 HTML 下拉菜单,当我将 JSON 从文件中拉入时,它会以对象 Object 的形式返回。我不知道我做错了什么。

我在这里尝试了很多答案,但没有一个适用于我的代码。

我的 HTML:

<h4>Design Tools</h4>

<select id="swatchNumber" onchange="swatchIndex()" class="custom-select"></select>

我的jsx:

function swatchIndex() {  
var doc, swatches, json, n, l, swatch;
doc = app.activeDocument;
swatches = doc.swatches;
json = [];
l = swatches.length;
for (n = 0; n < l; n++) {
swatch = swatches[n];
json[n] = '"' + n + '": {' +
'"name": "' + swatch.name + '"}'
}
// prepare the JSON as a string
json = '{' + json.join(',') + '}';
return json;
}

我的 JavaScript:

var callBack = function (result) {
try {
var swatchesConv = JSON.parse(result);

var select = document.createElement('SELECT');
select.name="swatchNumber";
select.id="swatchNumber";
document.body.appendChild(select);

Object.keys(swatchesConv).forEach(function(result){
document.getElementById('swatchNumber').innerHTML +='<option value="'+result+'">'+swatchesConv[result]+'</option>'
})

alert(result);

} catch (e) { alert(e.message); }
// alert("Wrong");
}
csInterface.evalScript('swatchIndex()', callBack);

弹出到我的警报中的实际 JSON(结果):{“0”:{“名称”:“无”},“1”:{“名称”:“注册”),“2”:{“名称”:“纸张”},“3”:{“名称” ”:“黑色”}}

当我加载应用程序时,我收到弹出 JSON 的警报,但下拉列表显示正确的数量,但每个索引只显示对象对象

最佳答案

因为 swatchesConv

{
“0”: {“name”: “None”},
“1”: {“name”: “Registration”),
“2”: {“name”: “Paper”},
“3”: {“name”: “Black”}
}

Object.keys(swatchesConv).forEach 中的 result 将是键,但 swatchesConv[result] 的值将是 key 的对象。因此,对于键 0 来说,它将是 {“name”: “None”}

要显示名称,您必须使用:

'<option value="'+result+'">'+swatchesConv[result].name+'</option>'

'<option value="'+result+'">'+swatchesConv[result]['name']+'</option>'

创建选择的选项时。

关于javascript - 如何修复 json 代码作为对象对象进入 html 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com