今天调用一个接口,返回的是json数据,但是拿到数据进行转换的报错,
JSONObject resultJson = new JSONObject(resuStr);
报错信息是:
Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:433)
at org.json.JSONObject.<init>(JSONObject.java:195)
at org.json.JSONObject.<init>(JSONObject.java:319)
解决方法:
int i = resuStr.indexOf("{");
resuStr = resuStr.substring(i);
JSONObject json = new JSONObject(resuStr.trim());
System.out.println(json.toString(4));
原因是:
json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常