Javascript 如何使用包含任意参数而不是标签和值的JSON填充DOJO Select

Javascript 如何使用包含任意参数而不是标签和值的JSON填充DOJO Select,javascript,json,select,dojo,Javascript,Json,Select,Dojo,我想用JSON填充DOJO select,其中value的项值由code表示。例如: //require dojo Select var select = new Select({ name: "stateSelect", options: [ { display: '1', code: 'TN', label: 'Tennessee' }, { display: '2',co

我想用JSON填充DOJO select,其中
value
的项值由
code
表示。例如:

//require dojo Select

var select = new Select({
    name: "stateSelect",                                    
    options: [ { display: '1', code: 'TN', label: 'Tennessee' },
               { display: '2',code: 'VA', label: 'Virginia'},
               { display: '3',code: 'WA', label: 'Washington' },
               { display: '4',code: 'FL', label: 'Florida' },
               { display: '5',code: 'CA', label: 'California' }]                                    
    }, "stateSelect");
    select.startup();
}
但它不起作用。然而,用
value
代替
code
(DOJO想要的id值)是可行的。但是我的JSON带有
code
(加上
display
label
)标记。我认为顺序应该不是问题,因为我们讨论的是JSON,但DOJO可能需要
value
参数。您能否澄清标记位置要求以及如何指定我希望DOJO将我的
代码
标记作为其
?替换字符串不是一个可接受的解决方案,因为系统需要my items的
code
值来执行许多其他功能

文件:


编辑:重要。我注意到标签中没有引号。标记(“”)。但我的JSON有它们(例如“代码”:“product1”…而不是代码:“product1”)。如何处理此问题?

当提供选项数组时,选择expects
value
label
。您不必重命名
code
属性,只需将其复制到
value
或创建另一个数组(如果它不会给应用程序的其余部分带来太多麻烦的话)

但是,也可以使用存储而不是选项数组创建选择。存储通常可以定义其id属性。ItemFileReadStore(dojo 1.6)需要具有以下结构的对象:

{
    "identifier": "abbreviation",
    "label": "name",
    "items": [
        { "abbreviation": "AL", "name": "Alabama" },

        ... other 48 states here ...

        { "abbreviation": "WY", "name": "Wyoming" }
    ]
}
您可以在此文档链接中找到更多信息: