GWT JSON Parse正在删除\字符

时间:2014-02-14 06:05:24

标签: java regex json gwt

在GWT中,我试图通过JSON提供正则表达式作为输入并尝试再次读取它。但是在从JSON读回值时,我在输入过程中给出的\字符错过了。

String input = "{\"digit\":\"(\d*)\"}";

JSONValue  parse   = JSONParser.parseLeneient(input);
JSONObject jsonObj = parse.isObject();

if(jsonObj!=null) {
 for(String key:jsonObj.keySet()) {
    System.out.prinltn(jsonObj.get(key).toString();
 }
}

我得到的输出是

(d*)

如何让\字符在我的输出中显示?

1 个答案:

答案 0 :(得分:2)

JSON specification

  

字符串的表示类似于C中使用的约定   编程语言家族。字符串的开头和结尾   引号。 所有Unicode字符都可以放在   除了必须转义的字符之外的引号:   引号,反向实线和控制字符(U + 0000   通过U + 001F)。

反向固相线为\因此,您无法将\单独放在JSON字符串中。

由于您的解析是宽松的,因此只会忽略\,因为\d is not a valid escape sequence.

基本上是JSON

{
    "digit": "(\d*)"
}

不是valid