日期:2014-05-17  浏览次数:20644 次

求助 关于JSON 相当纠结!
本帖最后由 likeajin 于 2013-07-03 16:23:28 编辑
包用的是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.