0

我正在使用来自 JSON 的值填充 Dojo Combobox 下拉列表。下面的代码工作得很好(内联 JSON).....

<script>
var magicvars = {
   identifier: 'name',
   label: 'name',
   items: [
   {name: "ZCCN_NO_1", label: "<img width='16px' height='16px' src='http://localhost:3000/static/images/eight_ball_16x16.png'/>ACCN_NO_1"},
   {name: "CR_Local_ID", label:"<img width='16px' height='16px' src='http://localhost:3000/static/images/eight_ball_16x16.png'/>CR_Local_ID"}
]};
</script>

<div dojoType="dojo.data.ItemFileReadStore" data="magicvars" jsId="xvarStore2"></div>

但是,当我为 JSON 指定一个外部文件时,不行,也就是说填充下拉列表。外部文件是standard.txt,看起来像这样......

{
  identifier: 'name',
  label: 'name',
  items: [
  {name: "ZCCN_NO_1", label: "<img width='16px' height='16px' src='http://localhost:3000/static/images/eight_ball_16x16.png'/>ACCN_NO_1"},
  {name: "CR_Local_ID", label:"<img width='16px' height='16px' src='http://localhost:3000/static/images/eight_ball_16x16.png'/>CR_Local_ID"}
 ]};

我对 dojo 的 HTML 调用看起来像这样..

<div dojoType="dojo.data.ItemFileReadStore" jsId="xvarStore2" url="http://localhost:3000/static/standard.txt">
</div>

内联工作正常,但外部调用不行。抱歉,如果这是一个补救问题,但我如何读取外部文件并将其分配给“magicvars”。我只是不想用一堆内联 JSON 来弄乱 HTML。

任何建议表示赞赏。珍妮

4

2 回答 2

1

它不是有效的 JSON,因此不会与大多数JSON.parse实现一起解析。尝试引用键名并去掉结尾的分号。

在 Chrome 上,

JSON.parse('{ a: "b" }')

生产

SyntaxError: Unexpected token ILLEGAL

一样

JSON.parse('{ a: "b" };')

但使用有效的 JSON(请注意周围的引号"a"

JSON.parse('{ "a": "b" }')

返回预期的结果。

于 2011-06-15T19:55:51.413 回答
0

尝试将文件重命名为standard.json.

我的猜测是 dojo 正在将您的文件作为纯文本字符串读取,因此不解析 JSON。(正如其他答案中指出的那样,这是无效的)

于 2011-06-15T19:58:07.143 回答