【发布时间】:2017-01-22 13:44:01
【问题描述】:
我正在尝试使用 java jsoup 和 json-simple 库从 twitter api 获取数据
Document doc = Jsoup.connect("https://api.twitter.com/1.1/search/tweets.json")
.header("Authorization", "Bearer " + token)
.header("charset", "utf-8")
.data("q", q)
.data("count", "2")
.data("max_id", currentStartId)
.ignoreContentType(true)
.get();
然后我收到一些 json 对象。但是当我尝试解析它时
String response = doc.text();
JSONObject requestObj = (JSONObject) parser.parse(response);
我收到了这个错误
Exception in thread "main" Unexpected character (\) at position 3535.
at org.json.simple.parser.Yylex.yylex(Yylex.java:610)
at org.json.simple.parser.JSONParser.nextToken(JSONParser.java:269)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:118)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:81)
at org.json.simple.parser.JSONParser.parse(JSONParser.java:75)
在 json 位置 3535
"description":""\u0412\u0435\u0434\u043e\u043c\u043e\u0441\u0442\u0438". \u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u0430\u044f \u0434\u0435\u043b\u043e\u0432\u0430\u044f \u0433\u0430\u0437\u0435\u0442\u0430"
【问题讨论】:
-
Jsoup 对于这种 api 调用来说确实是一个糟糕的客户端。它通常用于网页抓取,但事实并非如此。考虑使用通用的 restful 客户端、Apache HttpClient 甚至 twitter4j。