为什么在Rhino中执行的JavaScript脚本中声明一个简单的JSON对象不起作用?

为什么在Rhino中执行的JavaScript脚本中声明一个简单的JSON对象不起作用?,javascript,json,rhino,Javascript,Json,Rhino,我不太喜欢JavaScript。我正在使用JavaScript开发一个处理JSON文档的litle脚本。此JavaScript脚本不会在浏览器中执行,而是在另一个允许使用JavaScript编写某些任务脚本的产品中执行(prodcut是WSO2 ESB,但目前并不重要) 该产品(WSO2 ESB)使用Rhino作为JavaScript引擎,用于将JavaScript脚本实现到Java应用程序中 在这种环境中,我在尝试创建一个简单的JSON对象时遇到了一些问题 我做过类似的事情(在我的WSO2 E

我不太喜欢JavaScript。我正在使用JavaScript开发一个处理JSON文档的litle脚本。此JavaScript脚本不会在浏览器中执行,而是在另一个允许使用JavaScript编写某些任务脚本的产品中执行(prodcut是WSO2 ESB,但目前并不重要)

该产品(WSO2 ESB)使用Rhino作为JavaScript引擎,用于将JavaScript脚本实现到Java应用程序中

在这种环境中,我在尝试创建一个简单的JSON对象时遇到了一些问题

我做过类似的事情(在我的WSO2 ESB代码中):


以不同的方式?我的意思是以编程方式,而不显式地声明它。

这在支持带有模板文本的ES6的现代浏览器中有效:

var response = JSON.parse(`{"forecast": []}`);   
为什么,因为JavaScript首先将反勾号作为模板解决,并在解析JSON字符串之前用变量的内容填充它们:


var test=“多云”;
变量字符串=`{\'预测“:[“${test}”]}`;
var response=JSON.parse(字符串);

控制台日志(响应)倒勾是问题所在。@Mouser你到底是什么意思?我怎样才能解决它?拜托,你能给我举个例子吗?你的最后一个例子应该有用<代码>{“forecast”:[]}
@Mouser-mmm我不明白你的意思……你的意思是我必须从代码中删除`and`吗?是的,反勾号只受ES6引擎支持,但是如果我错了,有人会纠正我,JSON指南不允许这样做。如果你丢了`它可能会工作。
Caused by: javax.script.ScriptException: org.mozilla.javascript.EvaluatorException: illegal character (<Unknown Source>#9)
        at com.sun.phobos.script.javascript.RhinoScriptEngine.compile(RhinoScriptEngine.java:341)
        at com.sun.phobos.script.javascript.RhinoScriptEngine.compile(RhinoScriptEngine.java:323)
        at org.apache.synapse.mediators.bsf.ScriptMediator.initInlineScript(ScriptMediator.java:399)
        ... 32 more
{
    "forecast": []
}
var response = JSON.parse(`{"forecast": []}`);