当从URL解析JSON明文返回null,但连接正常时,可以尝试以下解决方法:
确保URL连接正常:首先,确保您的URL连接是正常的,可以尝试在浏览器中打开URL并查看返回的JSON数据是否正确。
检查网络权限:确保您的Android应用程序已经在Manifest文件中添加了适当的网络权限。您可以在Manifest文件中添加以下权限:
private class DownloadTask extends AsyncTask {
protected String doInBackground(String... urls) {
try {
URL url = new URL(urls[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
response.append(line);
}
bufferedReader.close();
return response.toString();
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
protected void onPostExecute(String result) {
if (result != null) {
// 在此处解析JSON数据
} else {
// 处理连接错误
}
}
}
implementation 'com.google.code.gson:gson:2.8.6'
然后,您可以使用以下代码解析JSON数据:
Gson gson = new Gson();
YourObject yourObject = gson.fromJson(jsonString, YourObject.class);
请确保您的YourObject类与JSON数据的结构相匹配。
通过使用以上解决方法,您应该能够从URL解析JSON明文并成功获取数据。如果问题仍然存在,可能是由于JSON数据不正确或URL返回的JSON数据格式有问题。您可以尝试使用在线JSON验证工具来验证JSON数据是否正确。