首页 > 解决方案 > 在android studio中解析Json

问题描述

我正在尝试使用 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。它是这样显示的:

我将这些数据放入数组并编码为 json ..这就是它的显示方式 这是我尝试获取时出现的错误:

Attempt to invoke virtual method 'void android.widget.TextView.SetText(java.lang.CharSequence)' on a null object reference

这是我尝试获取时出现的错误

标签: androidjson

解决方案


检查您是否将 TextView 与 findViewById() 或您用于绑定视图的任何其他方法绑定


推荐阅读