在Android中解析URL中的JSON
我正在尝试在android中解析以下JSON- 目前,运行此代码时,我的应用程序崩溃:在Android中解析URL中的JSON,android,json,parsing,url,Android,Json,Parsing,Url,我正在尝试在android中解析以下JSON- 目前,运行此代码时,我的应用程序崩溃: public String getJSON() throws IOException{ String url = "http://cj1m.1.ai/test.json"; HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse r
public String getJSON() throws IOException{
String url = "http://cj1m.1.ai/test.json";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8);
String jsonText = reader.readLine();
return jsonText;
}
我做错了什么,如何解决这个问题?问题可能是因为JSON响应格式不正确。中的JSON响应似乎不正确。您可以在此URL中验证JSON响应- 编辑: 从您最近的日志中可以清楚地看到,您正试图在主线程中检索导致应用程序崩溃的JSON。您需要使用
AsyncTask
执行网络操作
你可以参考这个代码
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
// Escape early if cancel() is called
if (isCancelled()) break;
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
私有类下载文件任务扩展异步任务{
受保护的长doInBackground(URL…URL){
int count=url.length;
长totalSize=0;
for(int i=0;i
更多细节
希望这有帮助。返回给您的错误/异常是什么?将stackTrace添加到question@SudhirMishra我不太清楚我是如何得到这个消息的。请确保您在单独的线程中发出HTTP请求,而不是在UI线程上。@Cj1m每个IDE都有一个LogCat。日志中记录了什么错误。只复制错误日志并将其添加到此处。@KennyC这就是问题所在吗?不,JSON是Validah ok。你能发布整个stacktrace吗?对不起,我该怎么做,你是说在logcat中发布所有内容吗?是的,为应用发布logcat中的所有内容。好的,需要在pastebin上发布,因为它对于评论部分来说太多了: