2010-07-15 68 views
1

我遇到了一些問題,我目前正在將舊系統轉換爲新版本,在舊版本中,數據請求由Java applets管理,數據中的「-char」沒有問題。 現在,我從數據庫獲取數據並使用XSLT將其轉換爲JSON字符串,然後 - 使用原型函數.evalJSON() - 將字符串轉換爲對象。 該XSL然後結構是這樣的(實施例)中的數據:Javascript:Escape「from json字符串

{rowsets: [ { rows: [ { "ID":"xxx","OtherProperty":"yyy" } ] } ] } 

其中在它自身是OK。 現在,當有數據庫中的某些數據含有「-characters的evalJSON()失敗,因爲它破壞了一般格式正確的JSON字符串,像這樣:

{rowsets: [ { rows: [ { "ID":"xxx","OtherProperty":"yyy "more" zzz" } ] } ] } 

現在,我想要做什麼,以某種方式逃避'不想要的''「 - 無需爲服務器端創建某種存儲過程。 我試圖將自己的頭圍繞正則表達式,但是我在該領域並不是很有經驗,因此我很難搞清楚它。

如果它的任何幫助,這肯定是合法的字符序列是: [「:」]和[「」] 和有可能出現的,應該被轉義序列是: [\ s「],[」\ s],[「,],[」。](\ s表示一個空格)

各種幫助表示讚賞,即使它是一些SQL,更容易:)

在此先感謝!

+0

您的轉換需要生成有效的JSON! – 2010-07-15 15:12:52

+0

這是非常有效的JSON,只要從數據庫中獲取的數據集中沒有「-characters」字符,那麼在使用evalJSON()函數之前,這些字符就是我需要用一些正則表達式或其他東西來轉義的東西 – 2010-07-16 06:47:15

回答

1

如果你在XSLT土地,那麼你正在重新發明輪子。谷歌上漲「badgerfish」,並看到here一個相當穩固的實施。當然,您可能會遇到其他問題,但首先要做的是第一件事。

+0

您可以看到它將輸出數據,就像我目前使用的XSLT一樣(例如,來自網站:{「alice」:{「bob」:[{「$」 :「charlie」},{「$」:「david」}]}}) - 使用「」分隔屬性和數據是好的,只要沒有數據中的字符 - 在我的情況下就是這樣。 – 2010-07-16 06:46:19

+0

@freaktm:不,xslt包含escape替換內容,即「 - > \」。嘗試一下。 – annakata 2010-07-16 08:41:28