Javascript:逃离“来自json字符串

时间:2010-07-15 15:03:40

标签: javascript regex json escaping

我有点问题。我目前正致力于将旧系统转换为更新版本。在旧版本中,数据请求由Java applet管理,这对于数据中的“-char”没有任何问题。 但是,现在,我从数据库中获取数据并使用XSLT将其转换为JSON字符串,然后使用原型函数.evalJSON() - 将字符串转换为对象。 然后XSL构造这样的数据(例子):

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

其中哪个是好的。 现在,当数据库中包含“-characters”的某些数据时,evalJSON()会失败,因为它会破坏通常格式良好的JSON字符串,如下所示:

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

现在,我想要做的是,以某种方式逃避“不受欢迎的”-chars - 而不必为我提供某种存储过程来服务器端。 我试图绕过RegEx,但我在那个领域并不是很有经验,所以我很难搞清楚。

如果有任何帮助,那些肯定合法的字符序列是: [“:”]和[“,”] 并且可能出现并且应该被转义的序列是: [\ s“],[”\ s],[“,],[”。](\ s表示空格)

所有类型的帮助都很受欢迎,即使它是一些使得它变得更容易的SQL:)

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果你在XSLT的土地上,那么你就是在重新发明轮子。谷歌上升“badgerfish”,并看到here相当稳固的实施。当然,你可能会遇到其他问题,但首先要做的事情。

答案 1 :(得分:0)

我最终选择了一个快捷方式,在我的XSL中使用字符串替换模板将“-characters”替换为“-characters”,然后将JSON返回给我的javascript函数,因此无需转义任何客户端。

(使用此:http://geekswithblogs.net/Erik/archive/2008/04/01/120915.aspx