2012-09-19 31 views
2

是否可以將包含Javascript函數的JSON字符串解析爲Jackson JsonNode?jackson解析javascript函數

的(JSON格式)的字符串我嘗試解析:

{ 
    "key1" : "value1", 
    "key2" : "value2", 
    "key3" : function() { 
     // some javascript code 
    } 
} 

在一個Java對象,我希望像一個Map(JavaScript函數轉換成字符串)。

目前,我有以下異常:

org.codehaus.jackson.JsonParseException: Unrecognized token 'function' 

我發現很多的功能非有效的JSON使用,但仍然不是我所想......

任何想法?

謝謝!

+1

我不清楚你的描述,但是你顯示的字符串不能是「JSON格式」,如果它有一個函數,除非函數本身被表示爲一個字符串,如「function(){}」'。 (JSON不允許功能 - 從您的描述中不確定您是否清楚該功能。) –

回答

0

這不是有效的JSON,它不被傑克遜支持;今後也不可能得到支持。我會建議做一個普通的JSON字符串,然後在Javascript端重新解析,如果需要的話。

2

JSON不允許使用函數。它是爲安全數據傳輸儘管你可以在功能編碼爲這樣的字符串:

{ 
    "key1" : "value1", 
    "key2" : "value2", 
    "key3" : "function() { ... }" 
} 

...但在重新編碼,這將是一個字符串,而不是一個功能,除非你是eval()它(儘管這可能是不安全的)。

+0

感謝Brett。這有點難以解釋,但我嘗試! :-) 實際上,我使用Jackson來生成JSON格式化的字符串(從Java對象和包含JSON的文件中獲取上述示例),並最終生成Javascript內容,即服務器端。 然後生成的Javascript被寫入HTTPResponse和解釋客戶端。 所以,我認爲我不能將函數編碼爲字符串,而我需要將「看作」字符串: -/ 也許使用自定義分析器? – tduchateau