2012-09-11 33 views
1

我嘗試在Servlet做:渲染值,而不從簡單的JSON對象報價

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}; 

有什麼建議嗎? :)

非常感謝

回答

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; 
    } 
} 
+0

我使用「com.googlecode.json-simple」maven工件(版本1.1.1)並且找不到JSONString接口。你的意思是哪個庫? – chuem

+0

我使用的是www.json.org中的文件。試用'實現JSONAware'? – Flavio

+0

啊這個工程。謝謝! – chuem