트윗이 포함 된 큰 JSON 문자열을 게시하려고합니다. 이 트윗에는 이중 따옴표와 많은 특수 문자가 포함되어 있습니다. JSON 문자열을 인코딩해야합니까? 내 코드는 트윗에 특수 문자 나 큰 따옴표가 없으면 작동합니다. 그렇지 않으면 응답을 얻지 못합니다.자바에서 JSON 문자열을 게시하는 방법
String jsonString = "{'data': [";
for (Tweet tweet : tweets) {
jsonString +="{'text': '" + tweet.getText() + "'},";
}
jsonString += "]}";
public void analyseTweets(String jsonString){
try {
// Send data
URL url = new URL("http://twittersentiment.appspot.com/api/bulkClassifyJson");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(jsonString);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
} catch (Exception e) {
System.out.print("Error dude!: " + e);
}
}
실제로 jsonString을 생성하는 코드가 더 적합 할 것입니다. –
문자열 값에서 큰 따옴표를 이스케이프하지 않으면 유효한 JSON이 아닙니다. 또한 작은 따옴표를 사용하는 방식은 유효한 JSON이 아닙니다. 또한 배열의 후행 쉼표는 유효한 JSON이 아닙니다. http://jsonlint.com/은 JSON이 유효한지 확인하기위한 멋진 도구입니다. –
Brian에게 감사드립니다. 내 json이 얼마나 무효인지 알지 못했습니다. Jsonlint가 도움이됩니다. 큰 따옴표가 포함 된 모든 트윗을 무시하기로했습니다. –