在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*)
如何让\字符在我的输出中显示?
答案 0 :(得分:2)
字符串的表示类似于C中使用的约定 编程语言家族。字符串的开头和结尾 引号。 所有Unicode字符都可以放在 除了必须转义的字符之外的引号: 引号,反向实线和控制字符(U + 0000 通过U + 001F)。
反向固相线为\
。 因此,您无法将\
单独放在JSON字符串中。
由于您的解析是宽松的,因此只会忽略\
,因为\d
is not a valid escape sequence.
基本上是JSON
{
"digit": "(\d*)"
}
不是valid。