Ниже приведен тестовый код, в котором я пытаюсь отправить какой-либо запрос через google api, api должен отправить ответ в строке синтаксического анализа json. Когда я печатаю строку, я отчетливо вижу объекты, такие как url, но когда я пытаюсь получить эти объекты из объекта JSON, я получаю ошибку.Ошибка JSON в Java при попытке доступа к google api
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import org.json.JSONObject;
public class test {
public static void main (String[] args) {
try {
// The request also includes the userip parameter which provides the end
// user's IP address. Doing so will help distinguish this legitimate
// server-side traffic from traffic which doesn't come from an end-user.
URL url = new URL(
"https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=lahore");
URLConnection connection = url.openConnection();
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null) {
builder.append(line);
System.out.println(line);
}
JSONObject jsonObject = new JSONObject(builder.toString());
System.out.println(jsonObject);
String url1 = (String) jsonObject.get("url");
System.out.println(url1);
} catch(Exception e) {
e.printStackTrace();
}
}
}
он бросает следующее исключение:
org.json.JSONException: JSONObject["url"] not found.
at org.json.JSONObject.get(JSONObject.java:459)
at org.json.JSONObject.getJSONArray(JSONObject.java:540)
at test.main(test.java:37)
Любая помощь высоко ценится.
У U, похоже, многоязычные символы, попробуйте этот BufferedReader reader = new BufferedReader (новый InputStreamReader (connection.getInputStream(), Charset.forName («UTF-8»))); –
Привет, Нитин, когда я конвертирую строку в объект json, некоторые из них игнорируют половину строки и начинаются с курсора сущности. все предыдущие объекты пропущены. – Zohaib