передача переменной в коллекцию json

#javascript

#javascript

Вопрос:

Я пытаюсь вызвать следующий js-метод. Я хочу передать переменную siteid. Я могу предупредить об этом значении. Но, похоже, это не работает в следующем контексте. т.е. если просто добавить идентификатор 1234, это сработает.

оповещение (siteid);

 embedSWF ('flashcontent', '{"siteID":siteid,"siteType":"portal","mainSWF":"http://tv.xxx.net/flash/xxx1.swf","movieWidth":"426","movieHeight":"276","expressInstall":"http://tv.xxx.net/expressInstall.swf"}');
  

Ответ №1:

Вам нужно объединить значение siteid в вашу строку: '...' siteid '...'

В зависимости от того, что вы создаете, вы можете захотеть, чтобы строка заключала значение в кавычки.

Комментарии:

1. Вы также создаете свой XML с помощью конкатенации строк?

2. Нет, но это отдельная проблема.

Ответ №2:

Самый надежный способ сделать это — сначала создать объект как обычный объект, а затем сериализовать его:

 var parms = {siteID: siteid, siteType: "portal", ...};
embedSWF('flashcontent', JSON.stringify(parms));
  

Если вам нужно поддерживать устаревшие браузеры, в которых нет встроенного объекта JSON, в Интернете доступно несколько реализаций.

Ответ №3:

 embedSWF ('flashcontent', '{"siteID":' siteid ',"siteType":"portal","mainSWF":"http://tv.xxx.net/flash/xxx1.swf","movieWidth":"426","movieHeight":"276","expressInstall":"http://tv.xxx.net/expressInstall.swf"}');
  

Ответ №4:

Вы передаете строку:

  '{"siteID":siteid,"siteType":"portal","mainSWF":"http://tv.xxx.net/flash/xxx1.swf","movieWidth":"426","movieHeight":"276","expressInstall":"http://tv.xxx.net/expressInstall.swf"}'
  

Вы, вероятно, имеете в виду передать:

 '{"siteID":'   siteid   ',"siteType":"portal","mainSWF":"http://tv.xxx.net/flash/xxx1.swf","movieWidth":"426","movieHeight":"276","expressInstall":"http://tv.xxx.net/expressInstall.swf"}');
  

Кажется немного странным передавать строку JSON, а не сам ассоциативный массив. В любом случае, это ваша проблема, описанная выше.