Вы должны объяснить, чего вы пытаетесь достичь. Как вы думаете, почему вам нужно «передать объект в HTML динамический c текст»?
В BIRT есть два типа динамических c текстовых элементов, и, похоже, вы их смешиваете:
Dynami c Текстовый элемент: вы указываете значение как выражение Javascript, например «Hello world» или «Hello» + row [«NAME»], если в вашем наборе данных есть столбец NAME.
Текстовый элемент: вы указываете значение как HTML, например, Hello world или Hello row ["NAME"].
Это сопоставимо с Java сервлетами и Java серверными страницами, оба может делать то же самое, но по-разному.
И то, и другое требует, чтобы ваш элемент макета имел доступ к данным из набора данных. Обычно это достигается путем размещения элемента макета в элементе таблицы или элементе списка, который привязан к набору данных (см. Вкладку «Привязка» в свойствах).
Для простоты я рекомендую просто забыть о «Текстовом элементе» и всегда используйте «Dynami c Текстовый элемент».
Ваш синтаксис var str = ...; является нерабочей синтаксической смесью.
Внутри «Dynami c Text Item» вы, вероятно, имеете в виду
reportContext.getPersistentGlobalVariable («json»)
Это не даст вам SyntaxError, потому что это допустимое выражение JavaScript.
Но это не сработает так, как вы думаете. Он попытается отобразить объект JS как текст, вероятно, с результатом «[объект объекта]».
Обратите внимание, что скрипты в BIRT происходят внутри BIRT, а не в браузере.
Вы действительно хотите создать (с BIRT) страницу HTML, содержащую Javascript, где этот Javascript выполняется в браузере?
Никогда не пробовал, но это должно быть возможно:
Обязательно установите тип «Dynami c Text Item» на HTML и используйте такое выражение:
("<script type=\"text/javascript\">\n" +
"alert('Hello world');\n" +
"</script>\n"
)
или с помощью Dynami c content:
("<script type=\"text/javascript\">\n" +
"alert('Hello " + row["NAME"] + "');\n" +
"</script>\n"
)
Но это усложняется:
Чтобы передать JSON объекты таким образом (в отличие от простых строк, таких как row ["NAME"]), вам необходимо написать код, который записывает содержимое JSON как исходный текст Javascript.