1

我尝试在 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"};

但我将此字符串呈现为 javascript 函数并尝试引用现有的 javascript 对象“事件”。所以我需要不带引号的 JSON Sting 中的值。

var object = {"eventContent":event};

有什么建议么?:)

多谢

4

1 回答 1

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;
    }
}
于 2012-09-11T12:19:23.793 回答