从twitter api获取无效的json

时间:2016-09-14 16:44:43

标签: java json twitter

我正在尝试使用java jsoup和json-simple libs从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"

1 个答案:

答案 0 :(得分:0)

您不应该使用Jsoup作为解析和清理HTML页面的设计。无论它吐出什么都不太可能让Json对你有用。

https://jsoup.org/apidocs/org/jsoup/Jsoup.html#connect-java.lang.String-

  

用于获取和解析HTML页面。

如上面的评论所示,您应该使用Twitter4J代替此。或者甚至在使用URLConnection或OkHttp获取后直接处理JSON。