Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从URL获取JSON数据并保存到变量以显示_Java_Android_Json - Fatal编程技术网

Java 从URL获取JSON数据并保存到变量以显示

Java 从URL获取JSON数据并保存到变量以显示,java,android,json,Java,Android,Json,我在获取json数据方面遇到了问题,我一直在关注youtube或者一些关于从url获取json数据的教程。我希望将获取数据写入字符串数据,并在MainActivity上显示到TextView,如“onPostExecute()”。我想,我的代码有一些问题,你能帮我检查一下代码吗 { "zone":"SGR01", "start":"14-01-2020", "end":"14-01-2020", "locations":[ "Gombak","Hulu Selango

我在获取json数据方面遇到了问题,我一直在关注youtube或者一些关于从url获取json数据的教程。我希望将获取数据写入字符串数据,并在MainActivity上显示到TextView,如“onPostExecute()”。我想,我的代码有一些问题,你能帮我检查一下代码吗


{  "zone":"SGR01",
   "start":"14-01-2020",
  "end":"14-01-2020",
   "locations":[
    "Gombak","Hulu Selangor","Rawang","Hulu Langat","Sepang","Petaling","Shah Alam"],
   "prayer_times":{
        "date":"14-01-2020",
        "datestamp":1578931200,
        "imsak":"6:02 am",
        "subuh":"6:12 am",
        "syuruk":"7:22 am",
        "zohor":"1:25 pm",
        "asar":"4:47 pm",
        "maghrib":"7:22 pm",
        "isyak":"8:36 pm"
        } 
}
//---------

public class fetchData extends AsyncTask<Void, Void, Void> {
String data ="";

 @Override
    protected Void doInBackground(Void... voids) {
 try {
            URL url = new URL("url");

            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line = "";
            while(line != null){
                line = bufferedReader.readLine();
                data = data + line;
    }
    } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
  @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        Log.d("DisplayData--",data);
        MainActivity.data.setText(data);
    }

{“区域”:“SGR01”,
“开始”:“14-01-2020”,
“结束”:“14-01-2020”,
“地点”:[
“贡巴克”、“雪兰莪胡鲁”、“拉旺”、“胡鲁兰加特”、“雪邦”、“佩塔林”、“沙阿阿拉姆”],
“祈祷时间”:{
“日期”:“14-01-2020”,
“邮戳”:1578931200,
“imsak”:“上午6:02”,
“苏布”:“上午6:12”,
“赛鲁克”:“上午7:22”,
“zohor”:“下午1:25”,
“asar”:“下午4:47”,
“马格里布”:“下午7:22”,
“isyak”:“晚上8:36”
} 
}
//---------
公共类fetchData扩展异步任务{
字符串数据=”;
@凌驾
受保护的空位背景(空位…空位){
试一试{
URL=新URL(“URL”);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
InputStream InputStream=httpURLConnection.getInputStream();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=”;
while(行!=null){
line=bufferedReader.readLine();
数据=数据+行;
}
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
Log.d(“显示数据--”,数据);
MainActivity.data.setText(数据);
}

我发现了一个错误,我修改了如下代码。 并使用StringBuffer来提高性能

     StringBuffer sb = new StringBuffer();
     String line = "";
     while(( line = bufferedReader.readLine()) != null ) 
     { 
         sb.append(line);
     }
     data = sb.toString();

我发现了一个错误,并修改了如下代码。 并使用StringBuffer来提高性能

     StringBuffer sb = new StringBuffer();
     String line = "";
     while(( line = bufferedReader.readLine()) != null ) 
     { 
         sb.append(line);
     }
     data = sb.toString();

将类定义为
FetchData extends AsyncTask
。不要在该类中声明
data
变量。读取
String doInBackground(String…voids)
方法中的内容,并返回它,而不是
null
。然后在
void onPostExecute(String data)中
method立即打印它。将类定义为
FetchData extends AsyncTask
。不要在该类中声明
data
变量。读取
String doInBackground(String…voids)
方法中的内容,并返回它,而不是
null
。然后在
void onPostExecute(String data)中
method在您现在进行打印时将其打印出来。