今天调用一个接口,返回的是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串是正常的,但是解析就有异常
JSON解析错误:编码字符导致的JSONObject异常
文章讲述了在处理接口返回的JSON数据时遇到的解析问题,原因在于JSON字符串头部的编码字符(如UTF-8),解决方法是定位并移除这些字符后重新解析。
2714

被折叠的 条评论
为什么被折叠?



