包用的是json-lib-2.3-jdk15.jar。请看以下代码:
class Test{
private String a;
public Test(String t){a = t;}
public String getA(){return a;}
public void setA(String t){a = t;}
}
class Main{
public static void main(String[] P){
Test t = new Test("''");
JSONObject x = JSONObject.fromObject(x); //{"a":"''"}
String s = x.toString(); //"{\"a\":\"''\"}"
x = JSONObject.fromObject(s); //{"a":""} 字符串中的单引号不见了……
}
}
注:以上代码是测试,实际运用中是后台接受一个前台传递过来的json字符串,通过json包获取信息,其中就有值为''的字符串,可怎么都获取不到。
------解决方案--------------------
这是 json-lib-2.3 的一个bug。升级到 2.4即可解决。
http://json-lib.sourceforge.net/changes-report.html#a2.4
A string starting and ending with quotes is badly parsed. Thanks to Sascha Theves (provided patch) Fixes 2893329.