我尝试在Servlet中执行:
JSONObject json = new JSONObject();
json.put( "eventContent", "event" );
String script = "var object= " + json.toJSONString() + ";";
response.getWriter().print( something + script + another );
脚本的内容当然是:
var object = {"eventContent":"event"};
但我将此String渲染为javascript函数并尝试引用现有的javascript对象“event”。所以我需要JSON Sting中没有引号的值。
var object = {"eventContent":event};
有什么建议吗? :)
非常感谢
答案 0 :(得分:2)
我认为这不是真正的JSON,因为你不应该引用变量。无论如何,您可以通过实现JSONString
界面来获得所需的内容,如此。
public static void main(String[] args) throws JSONException {
JSONObject json = new JSONObject();
json.put( "eventContent", new JSONVariable("event") );
System.out.println("var object= " + json.toString() + ";");
}
private static class JSONVariable implements JSONString { // implements JSONAware with com.googlecode.json-simple
private final String name;
public JSONVariable(String name) {
this.name = name;
}
@Override
public String toJSONString() {
return name;
}
}