【发布时间】:2020-08-04 06:35:44
【问题描述】:
我正在尝试使用 json 解析从 android 上的 php 服务器获取数据。这是我的android代码.....
我无法获取数据并收到一些错误,我在下面附上了屏幕截图。我无法弄清楚。
package com.example.ecogreen;
import android.os.AsyncTask;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class FetchData extends AsyncTask {
String fetched_data="",extracted="";
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
Features.data.setText(this.extracted);
}
@Override
protected Object doInBackground(Object[] objects) {
try {
URL url = new URL("https://192.168.0.197/?");
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
while(line != null){
line = bufferedReader.readLine();
}
JSONArray JA = new JSONArray();
for(int i =0 ;i < JA.length(); i++){
JSONObject JO = (JSONObject) JA.get(i);
fetched_data = "Temperature" + JO.getString("temprature") + "\n" +
"moisture1" + JO.getString("moisture1") + "\n" +
"humidity" + JO.getString("humidity") + "\n" +
"moisture2" + JO.getString("moisture2") + "\n" ;
extracted = extracted + fetched_data + "\n";
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}
我将这些数据放入数组并编码为 json。它是这样显示的:
这是尝试获取时出现的错误:
Attempt to invoke virtual method 'void android.widget.TextView.SetText(java.lang.CharSequence)' on a null object reference
【问题讨论】: