Назначение внешнего JSON в var - PullRequest
0 голосов
/ 15 июня 2011

Я заполняю выпадающий список Dojo Combobox значениями из JSON.Приведенный ниже код работает просто отлично (встроенный 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"}
 ]};

Мой HTML-вызов dojo выглядит следующим образом ..

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

Inline работает нормально, но внешний вызовне.Извиняюсь, если это исправительный вопрос, но как я могу прочитать внешний файл и назначить его "magicvars".Я просто не хочу загромождать HTML кучей встроенных JSON.

Любой совет приветствуется.Джени

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Это недопустимый JSON, поэтому не будет анализироваться с большинством JSON.parse реализаций.Попробуйте процитировать имена клавиш и избавиться от конечной точки с запятой.

В Chrome

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

производит

SyntaxError: Unexpected token ILLEGAL

, как и

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

но с действительным JSON (обратите внимание на кавычки вокруг "a")

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

возвращает ожидаемый результат.

0 голосов
/ 15 июня 2011

Попробуйте переименовать файл в standard.json.

Я предполагаю, что dojo читает ваш файл в виде простой текстовой строки и поэтому не анализирует JSON. (Как указано в других ответах, не действителен)

...